在gradle multi项目(java)中,可以共享源代码,以便每个项目都可以访问它并编译它吗?
例如,子项目'mouse','cat','dog',每个包含一个java类 - Mouse.java
Cat.java
和Dog.java
。每个类都扩展Animal.java
。
需要注意的是,当构建任何给定的子项目(例如,'mouse')时,它会定义一些编译时依赖项(来自maven central),并且需要Animal.java
编译使用那些依赖。其他项目也是如此。所以,我无法编译和jar Animal.java
,然后使用该jar作为3个项目的依赖项。动物必须与依赖项目的源一起重新编译。结果应该是mouse.jar,cat.jar和dog.jar,每个都在它们各自的项目构建目录中(像往常一样),每个都包含它们的Animal.class版本。
我知道这个例子不是很直观(因为Animal应该足够通用,可以独立编译)。这是我能找到的最好的模拟我想要解决的难以解释的场景。
这可以在Gradle中完成吗?
谢谢。
答案 0 :(得分:1)
使用sourceSets解决了这个问题。将父项目主要源集添加到子项目中:
例如,添加到项目'鼠标的build.gradle
:
sourceSets {
main.java.srcDir project(':animal').sourceSets.main.java
}