Maven命令在本地安装远程依赖项

时间:2010-11-11 17:17:51

标签: maven-2

我有一个基础pom,它定义了我们在防火墙后运行的nexus的存储库位置,我们所有的项目都继承自这个基础pom。但是,基础存在于基础中定义的其中一个存储库中,因此您可以看到循环引用问题。我想要一个maven安装:install-file like命令我可以运行新的团队成员,以便在本地下拉并安装基础项目,而无需从源代码控制和mvn install检查项目。 / p>

1 个答案:

答案 0 :(得分:7)

  

我想要一个maven安装:install-file like命令我可以运行新的团队成员,以便在本地下拉并安装基础项目,而无需从源代码管理中检查项目并安装它。 / p>

Maven Dependency Plugin及其dependency:get目标在这里可能有所帮助,您可以这样做:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
    -Dartifact=groupId:artifactId:version[:packaging] \
    -DrepoUrl=http://repository.mycompany.com/ 

但让我回过头来看看:

  

但是,基础存在于基础(...)

中定义的其中一个存储库中

除非这真的是你想要的(为 central 中没有找到的东西添加一个存储库),这通常不是人们在公司环境中声明Nexus存储库的方式。

人们通常希望所有请求通过他们的Nexus存储库并在其中存储工件。存储您需要的所有工件是确定的唯一方法,您将能够在1年,5年,10年内重复构建。当然,maven人在中央做得很好,但你确定要依靠不受你控制的东西吗?因此,人们通常会将Nexus声明为settings.xml中所有内容的镜像(请查看4.2. Configuring Maven to Use a Single Nexus Group部分)。

如果您不希望每个用户在其~/.m2/settings.xml中添加所需的代码段,最好的选择是分发和使用Maven客户端的公司版本,并使用{{根据需要对其进行预配置1}}文件。

参考