【发布时间】:2016-06-26 23:28:44
【问题描述】:
我需要将我们的 Maven 构建 Java 项目发布给远程 QA 团队。为此,我想下载所有依赖项,然后发送它们,这样他们就不需要下载它们了。
目前所有依赖项都在pom.xml 文件中定义,我们使用mvn install 或mvn package 来构建项目。一些项目成员使用 uber jars,其他人使用 jars + 依赖项来执行。
什么是最简单的方法来预先打包依赖的 jar 文件,这样就不会从互联网上下载,并且不会过多地改变我们当前的构建过程?
【问题讨论】:
-
在您的网络中创建一个本地 maven 存储库,例如 artifactory。这样,依赖项就会缓存在您的本地网络中。
-
你能详细解释一下这个过程吗?我将如何打包这个本地 maven 存储库并将其发送给远程团队?
-
不,本地网络中的存储库只会阻止每个团队成员从 Internet 下载所有依赖项。相反,它们将被缓存在存储库中,并且可以从那里下载。现在我不明白你为什么要向他们发送任何依赖项。 maven 依赖项的全部目的是您不必打包和发送它们,而只需要在 pom.xml 中引用它们
-
或者,您可以使用
mvn dependency:go-offline离线并制作本地仓库的 ZIP。 -
您的构建系统效率低下。您应该生成单个发布工件(可能有很多文件),并在环境之间进行推广。现在你真的不知道测试人员已经测试了你构建的同样的东西——任何东西都可能在那些 pom 或依赖项中。