我们有两个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/