我想将我的大型构建文件的通用部分外部化,以便在项目之间共享它们。在我看来,最简单的选择是将 Gradle 代码放入新的构建文件中并将它们存储在服务器上。然后我可以将它们包含在“应用自:”中。
这样做的缺点是,如果没有 Internet 连接,构建会失败。
你将如何解决这个问题?我可以让 Gradle 缓存在线构建脚本吗?
感谢您分享您对这个问题的看法。
我想将我的大型构建文件的通用部分外部化,以便在项目之间共享它们。在我看来,最简单的选择是将 Gradle 代码放入新的构建文件中并将它们存储在服务器上。然后我可以将它们包含在“应用自:”中。
这样做的缺点是,如果没有 Internet 连接,构建会失败。
你将如何解决这个问题?我可以让 Gradle 缓存在线构建脚本吗?
感谢您分享您对这个问题的看法。
我现在制作了一个插件来实现这一点:https ://github.com/kageiit/gradle-url-cache-plugin
脚本插件的缓存将在 Gradle 的未来版本中提供。同时,如果您需要离线支持,最好的选择是编写一个二进制插件(实现类org.gradle.api.Plugin
),将其打包为 Jar,将其发布到存储库,并在任何构建classpath
的部分中将其指定为依赖项buildscript
希望使用该插件。有关更多信息,请参阅 Gradle 用户指南中的编写自定义插件一章。
此版本的发行说明说 HTTP(S) 上的脚本插件现在已缓存并可离线使用。
更好地支持通过 HTTP 加载的脚本插件
脚本插件通过
apply from: 'URL'
语法应用于 Gradle 设置或项目。此版本中改进了对 http:// 和 https:// URL 的支持:
- HTTP 脚本插件被缓存以供
--offline
使用。- HTTP 脚本插件的下载遵循代理身份验证设置。