如何创建带差异化资源的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
相关产品推荐
相关产品推荐

