为Java项目构建Flavors

时间:2015-06-15 23:47:22

标签: gradle

Build Flavors通常通过android gradle插件在Android应用程序中使用。这允许项目具有目录结构

src
  - main
    - com.stack.A.java
  - debug
    - com.stack.B.java
  - release
    - com.stack.B.java

这将只编译正确的B.java,具体取决于所选的版本类型。

有没有办法在不使用android gradle插件并只使用java插件的情况下镜像此功能?

2 个答案:

答案 0 :(得分:4)

在Java插件中称为sourceSet,请参阅https://docs.gradle.org/current/userguide/java_plugin.html

自动创建

maintest sourceSets,以添加更多源集,您可以执行以下操作。基本上,发布和调试都使用主

中的代码
apply plugin: 'java'

sourceSets {
    release {
        java {
            srcDirs 'src/main/java', 'src/release/java'
        }
    }

    debug {
        java {
            srcDirs 'src/main/java', 'src/debug/java'
        }
    }
}

答案 1 :(得分:4)

我已经写了一个插件来实现这个目标。例如

apply plugin: 'com.lazan.javaflavours'
javaFlavours {
    flavours = ['free', 'paid']
}

然后src/free/javasrc/paid/java中的来源以及src/free/resourcessrc/paid/resources

中的资源

github上的项目:https://github.com/uklance/gradle-java-flavours