[英]Multiple maven repositories with a known unknown host
我正在配置一個Maven構建,以在兩個不同的環境中執行,第一個在我的本地主機中,第二個在使用jenkins的docker集群中執行。
兩個構建都將使用相同的pom.xml文件。 在pom.xml文件中,我引用了一個私有的關系存儲庫。
nexus存儲庫位於docker集群內部。
pom.xml中定義的兩個URL都重定向到相同的關系存儲庫。
因此,要從我的本地主機訪問nexus存儲庫,我們已經配置了私有DNS來將“ git.consignet.intranet”解析為nexus存儲庫。 然后在docker內部訪問nexus repo,我可以僅使用其服務名稱“ nexus-repo”。
pom.xml的相關內容如下所示:
<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>
在我的本地主機中構建時,我無法使用泊塢窗中的服務名稱來訪問存儲庫以解析到主機。
在jenkins內部(在docker容器內部)構建時,我無法訪問我們的DNS服務器來解析URL。
Maven引發以下錯誤消息:
[ERROR] Failed to execute goal on project DB1ConsignetWebService: Could not
resolve dependencies for project DB1ConsignetWebService:DB1ConsignetWebService:war:1.0-SNAPSHOT:
Failed to collect dependencies at Consignet:jaxb-api:jar:2.2.7-facets-1.0.5:
Failed to read artifact descriptor for Consignet:jaxb-api:jar:2.2.7-facets-1.0.5:
Could not transfer artifact Consignet:jaxb-api:pom:2.2.7-facets-1.0.5
from/to my-repo1 (http://nexus-repo/repository/maven-releases/): nexus-repo:
Unknown host nexus-repo -> [Help 1]
在每個環境中只能解析一個URL:
在開發環境中,我將只能解析“ git.consignet.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>
然后使用mvn -Pjenkins
或mvn -Pdev
,具體取決於您所處的環境。現在(希望如此)該問題已減少為讀取環境標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.