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