0

我有兴趣在多模块项目中使用 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 插件来解决,但肯定有人已经解决了?

谢谢。

4

1 回答 1

1

Gradle 计划支持分布式构建缓存,但尚不可用。在不接触 Gradle 代码库的情况下很好地实现这一点可能会很困难(我不知道有任何这样的努力)。常规的 Maven/Ivy 存储库可能不是保存缓存构建结果的最佳位置。

于 2014-05-29T10:12:01.800 回答