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

最佳答案

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

  • 编写一个包含共享逻辑(例如foo.gradle)的构建脚本,将其放在Web服务器上,并通过apply from: "http://..."将其包含在其他构建中。我们称其为脚本插件。
  • 制作一个单独的插件项目(并构建),编写一个二进制插件(一个实现org.gradle.api.Plugin的类),将其作为Jar发布到存储库中,并将其包含在其他带有apply plugin: ...buildscript {}部分的构建中。

  • 脚本(但不是二进制)插件的局限性在于它们不会被缓存。因此,使用脚本插件的构建只有在它可以连接到为插件提供服务的Web服务器上时才能成功。

    有关更多详细信息,请参见Gradle User Guide和完整Gradle发行版中的许多示例。

    关于repository - 如何在存储库之间共享Gradle脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19185410/

    10-10 18:04
    查看更多