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