如何通过存储库共享通用的 build.gradle?

2024-01-21

我正在考虑将 Maven 构建移植到 gradle。 maven 的一个特点是pom继承 http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance我可以在 pom 中声明各种常见行为,将其发布到存储库,然后通过<parent>具体项目中的元素。

我的问题只是 gradle 中是否有等效的行为?

我之前在 ant+ivy 中通过导入一个公共 build.xml 来完成此操作,该构建依赖于已经从源代码管理中检查了公共 build.xml 的位置或使用 svn:externals 之类的东西。我可以毫无困难地重复这种方法,但这似乎是 Maven 做得很好的一件事,所以很高兴在 gradle 中看到类似的东西。


有两种可能:

  1. 将构建脚本发布到 Web 服务器,并将其包含在apply from: "http://path/to/script.gradle"

  2. 编写一个 Gradle 插件,将其作为 Jar 发布到 Maven 或 Ivy 存储库,并将其包含在:

    buildscript {
        repositories { .. }
        dependencies "mygroup:myplugin:1.0"
    }
    
    apply plugin: "myplugin"
    

第二种选择更复杂,但也更强大。例如,插件 Jars 将被缓存,而远程构建脚本目前不会。一般来说,我建议从 1. 开始,并在必要时转向 2.。将来,Gradle 可能会提供一种将 1. 的易用性与 2. 的优点结合起来的机制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过存储库共享通用的 build.gradle? 的相关文章

随机推荐