Gradle多项目 - 在项目之间共享源代码

时间:2015-08-13 13:40:15

标签: java gradle build.gradle

在gradle multi项目(java)中,可以共享源代码,以便每个项目都可以访问它并编译它吗?

例如,子项目'mouse','cat','dog',每个包含一个java类 - Mouse.java Cat.javaDog.java。每个类都扩展Animal.java

需要注意的是,当构建任何给定的子项目(例如,'mouse')时,它会定义一些编译时依赖项(来自maven central),并且需要Animal.java编译使用那些依赖。其他项目也是如此。所以,我无法编译和jar Animal.java,然后使用该jar作为3个项目的依赖项。动物必须与依赖项目的源一起重新编译。结果应该是mouse.jar,cat.jar和dog.jar,每个都在它们各自的项目构建目录中(像往常一样),每个都包含它们的Animal.class版本。

我知道这个例子不是很直观(因为Animal应该足够通用,可以独立编译)。这是我能找到的最好的模拟我想要解决的难以解释的场景。

这可以在Gradle中完成吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用sourceSets解决了这个问题。将父项目主要源集添加到子项目中:

例如,添加到项目'鼠标的build.gradle

sourceSets {
    main.java.srcDir project(':animal').sourceSets.main.java
}