You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带差异化资源的Java Gradle应用并配置dev分发与运行任务

完整配置方案

你可以直接在原有build.gradle基础上添加以下配置即可实现需求:

// 1. 定义dev源码集,自动识别src/dev目录,同时继承main的全部依赖
sourceSets {
    dev {
        resources.srcDir 'src/dev/resources'
        compileClasspath += sourceSets.main.output
        runtimeClasspath += sourceSets.main.output
    }
}

// 2. 配置dev分发,复用main的类、依赖,替换resources为dev版本
distributions {
    dev {
        mainClass = application.mainClass // 复用主配置的启动类
        contents {
            // 引入main编译后的类文件
            from sourceSets.main.output.classesDirs
            // 引入全部运行时依赖
            from configurations.runtimeClasspath
            // 引入dev环境的资源文件
            from sourceSets.dev.output.resourcesDir
            // 排除main目录下的默认资源文件
            exclude '**/main/resources/**'
            // 所有类和依赖都放入分发包的lib目录,和官方默认main分发结构一致
            into 'lib'
            // 复用默认分发的启动脚本生成逻辑
            with distributions.main.contents
        }
    }
}

// 3. 定义dev环境专属的运行任务
task runDev(type: JavaExec) {
    group = 'Application'
    description = 'Runs the application with dev environment resources'
    mainClass = application.mainClass
    classpath = sourceSets.dev.runtimeClasspath
    // 如需dev专属的启动参数、JVM参数可以在这里添加
    // jvmArgs '-Xdebug', '-Denv=dev'
    // args '--debug'
}

使用说明

  • 执行 ./gradlew assembleDevDist 即可生成dev环境的独立分发包,结构和官方main分发完全一致,仅资源文件为src/dev/resources下的内容
  • 执行 ./gradlew runDev 即可直接运行dev环境版本,无需打包
  • 所有main分支的依赖、主类配置都自动复用,无需重复声明

内容的提问来源于stack exchange,提问作者Dunderklumpen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:18:01