我的公司有一项政策,即部署到生产中的软件必须构建在无法访问 Internet 的特定机器上。
我们目前正在使用Maven
. 在开发机器上运行构建时,maven 会自动从中央 Maven 存储库下载依赖项而不会出现问题。然后在投入生产之前,我们将本地 Maven 存储库 (.m2/repository) 中的所有文件放入源代码控制中,然后运行离线构建
mvn -o -Dmaven.local.repo=<local repo dir> package
这种方法有效,但在源代码管理中管理数千个文件确实很痛苦,尤其是 Maven 插件的依赖项。因此我的问题是,如何改进工作流程以便更容易维护源代码管理中的依赖关系?
我正在考虑切换到Gradle
,主要是因为它更灵活并且不依赖于从存储库下载的插件。但后来我发现 Gradle 本地缓存目录无法在计算机之间传输,这意味着我无法将其签入源代码管理。
建议和建议都表示赞赏。