我有兴趣在多模块项目中使用 gradle,我可以重用这个问题Gradle nested multi-projects with project compile dependencies并说明它的依赖关系
Root
|__ P1
| |_ PP1
| |_ PP2
|
|__ P2
|_PP3
|_PP4
与原始问题一样,我想编译 PP1 - 但我只是按需编译,否则我想使用最新的构建 jar 依赖项。
dependencies {
compile(project(":P1:PP1"))
}
所以理想情况下我想要类似的东西
dependencies {
compile(compileFromSourceCodeOrLoadJar(project(":P1:PP1"), 'P1:PP1'))
}
如果 PP1 目录中的源文件比最新构建的 jar 更新,它将被编译。这个想法是仅在绝对必要时进行编译。可以根据源文件与 jar 文件的最后修改时间戳做出决定。
为了使它更加复杂和潜在的高效,应该根据版本控制系统的输出做出决定——如果自时间 X 或修订版 R 以来有任何更改——然后检查和编译;否则使用 jar 依赖项。
有没有人解决过这个问题?我想它可以通过自定义 gradle/groovy 插件来解决,但肯定有人已经解决了?
谢谢。