Java 具有已知未知主机的多个maven存储库 描述
我正在配置一个maven构建,在两个不同的环境中执行,第一个在本地主机中,第二个在docker集群中使用jenkins 两个版本将使用相同的pom.xml文件。 在pom.xml文件中,我引用了一个私有nexus存储库 nexus存储库位于docker集群内 pom.xml中定义的两个URL都重定向到同一个nexus存储库 因此,为了从我的本地主机访问nexus存储库,我们配置了私有DNS,将“git.delicatet.intranet”解析为nexus repo。 然后要访问docker内部的nexus repo,我可以只使用它的服务名称“nexus repo” pom.xml的相关内容如下所示:Java 具有已知未知主机的多个maven存储库 描述,java,maven,docker,nexus,Java,Maven,Docker,Nexus,我正在配置一个maven构建,在两个不同的环境中执行,第一个在本地主机中,第二个在docker集群中使用jenkins 两个版本将使用相同的pom.xml文件。 在pom.xml文件中,我引用了一个私有nexus存储库 nexus存储库位于docker集群内 pom.xml中定义的两个URL都重定向到同一个nexus存储库 因此,为了从我的本地主机访问nexus存储库,我们配置了私有DNS,将“git.delicatet.intranet”解析为nexus repo。 然后要访问docker内部
<project>
...
<repositories>
<repository>
<id>nexus-aws</id>
<name>Nexus Amazon</name>
<url>http://nexus.consignet.intranet/repository/maven-releases/</url>
</repository>
<repository>
<id>nexus-cluster</id>
<name>Nexus Inside Cluster</name>
<url>http://nexus-repo/repository/maven-releases/</url>
</repository>
</repositories>
...
</project>
最后考虑
每个环境中只能解析一个URL:
在开发环境中,我将能够解析“git.delegate.intranet”dns
在jenkins构建环境中,我将能够解析“nexus repo”dns
问题:
如果maven中的存储库是未知主机,是否可以忽略它?如果是,我如何配置它?使用配置文件:
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus-aws</id>
<name>Nexus Amazon</name>
<url>http://nexus.consignet.intranet/repository/maven-releases/</url>
</repository>
</repositories>
</profile>
<profile>
<id>jenkins</id>
<repositories>
<repository>
<id>nexus-cluster</id>
<name>Nexus Inside Cluster</name>
<url>http://nexus-repo/repository/maven-releases/</url>
</repository>
</repositories>
<profile>
</profiles>
发展
nexus aws
Nexus亚马逊
http://nexus.consignet.intranet/repository/maven-releases/
詹金斯
nexus群集
簇内连接
http://nexus-repo/repository/maven-releases/
然后使用
mvn-Pjenkins
或mvn-Pdev
构建,具体取决于您所处的环境。现在(希望如此)问题归结为读取环境标志。告诉maven使用localhost:8081,并根据您的环境使用端口转发/映射来指向最终位置。虽然此答案提供了实现目标的替代路线,这是否意味着可能不会以OP尝试的方式添加多个存储库?也就是说,如果无法访问某个存储库,maven是否可以忽略该存储库?
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus-aws</id>
<name>Nexus Amazon</name>
<url>http://nexus.consignet.intranet/repository/maven-releases/</url>
</repository>
</repositories>
</profile>
<profile>
<id>jenkins</id>
<repositories>
<repository>
<id>nexus-cluster</id>
<name>Nexus Inside Cluster</name>
<url>http://nexus-repo/repository/maven-releases/</url>
</repository>
</repositories>
<profile>
</profiles>