簡體   English   中英

具有已知未知主機的多個Maven存儲庫

[英]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輸出

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 -Pjenkinsmvn -Pdev ,具體取決於您所處的環境。現在(希望如此)該問題已減少為讀取環境標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM