如何在存储库之间共享Gradle脚本?

时间:2013-10-04 15:44:16

标签: repository gradle share

我们有两个Java组件存储库,我们需要从中生成一个WAR。这些存储库中的Gradle构建脚本有许多常见部分。 我们应该如何在存储库之间共享这些常见的Gradle脚本:
- 将常见的Gradle脚本放入存储库;
- 有自定义Gradle分发,将其放入存储库吗? 还有其他想法吗?
如果我们将常见的Gradle脚本放入存储库,我们还需要将它们放在SCM中,并使它们保持同步 - 我们可能需要另一个Gradle脚本来将Gradle脚本发布到存储库。

1 个答案:

答案 0 :(得分:4)

在构建之间共享构建逻辑有两种方法:

  1. 编写包含共享逻辑(例如foo.gradle)的构建脚本,将其放在Web服务器上,并将其包含在apply from: "http://..."的其他构建中。我们称之为脚本插件
  2. 创建一个单独的插件项目(和构建),编写二进制插件(实现org.gradle.api.Plugin的类),将其作为Jar发布到存储库,并将其包含在apply plugin: ...的其他构建中一个buildscript {}部分。
  3. 脚本(但不是二进制)插件的限制是它们不被缓存。因此,使用脚本插件的构建只有在可以连接到为插件提供服务的Web服务器时才会成功。

    有关详细信息,请参阅Gradle User Guide以及完整Gradle分布中的众多示例。