我们有两个Java组件存储库,我们需要从中生成一个WAR。这些存储库中的Gradle构建脚本有许多常见部分。
我们应该如何在存储库之间共享这些常见的Gradle脚本:
- 将常见的Gradle脚本放入存储库;
- 有自定义Gradle分发,将其放入存储库吗?
还有其他想法吗?
如果我们将常见的Gradle脚本放入存储库,我们还需要将它们放在SCM中,并使它们保持同步 - 我们可能需要另一个Gradle脚本来将Gradle脚本发布到存储库。
答案 0 :(得分:4)
在构建之间共享构建逻辑有两种方法:
foo.gradle
)的构建脚本,将其放在Web服务器上,并将其包含在apply from: "http://..."
的其他构建中。我们称之为脚本插件。org.gradle.api.Plugin
的类),将其作为Jar发布到存储库,并将其包含在apply plugin: ...
的其他构建中一个buildscript {}
部分。脚本(但不是二进制)插件的限制是它们不被缓存。因此,使用脚本插件的构建只有在可以连接到为插件提供服务的Web服务器时才会成功。
有关详细信息,请参阅Gradle User Guide以及完整Gradle分布中的众多示例。