我需要将我们的maven build java项目发布给远程QA团队。为此,我想下载所有依赖项,并发送它们,以便它们不需要下载它们。
目前,所有依赖项都在pom.xml文件中定义,我们使用mvn install或mvn package来构建项目。一些项目成员使用超级罐,其他人使用jar +依赖项来执行。
预先打包相关jar文件的最简单方法是什么,这样才能从互联网上下载,并且不会过多地改变我们当前的构建过程?
答案 0 :(得分:23)
一个可能的解决方案是清除您的本地存储库,告诉Maven下载项目的每个依赖项和插件依赖项并制作一个ZIP。
要清除本地存储库,只需删除文件夹{user.home}/.m2/repository
即可。然后,您可以使用dependency:go-offline
目标:
解决所有项目依赖项的目标,包括插件和报告及其依赖项。
mvn dependency:go-offline
这将下载您的项目所依赖的所有内容,并确保在以后的版本中不会下载任何内容。
然后,您只需制作{user.home}/.m2/repository
的ZIP并将其发送给您的Q / A团队。他们需要在自己的{user.home}/.m2/repository
内解压缩才能构建项目。
答案 1 :(得分:4)
您的要求可以通过创建具有完全依赖性的独立jar文件来完成。您可以在任何地方移植它,请参阅https://stackoverflow.com/a/35359756/5678086
从那里运行以下命令
mvn install:install-file -Dfile=<path-to-file>
这将在目标计算机的maven存储库中安装dependecies。这是完全离线
答案 2 :(得分:0)
理论上,如果您知道将使用哪些 Maven 命令(打包、安装等),您可以清除 ~/.m2/repository
文件夹,在某人的开发箱上运行一次这些命令,然后分发存储库文件夹。您可以运行 maven -o install
等,让它不发出烦人的警告。这可能是比 go-offline
答案略小的发行版。