我有兴趣在多模块项目中使用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插件解决,但有人必须已经解决了吗?
谢谢 .
1 回答
Gradle计划支持分布式构建缓存,但它尚不可用 . 在不触及Gradle代码库的情况下实现这一点可能很困难(我不知道任何这样的努力) . 常规的Maven / Ivy仓库可能不是保持缓存构建结果的最佳位置 .