2017-02-25 58 views
4

我在.m2目錄下,禁用默認的遠程回購:在你的pom.xml覆蓋MVN的settings.xml。只定義項目的具體回購

<?xml version="1.0" encoding="UTF-8"?> 
<settings> 
<mirrors> 
    <mirror> 
    <id>my.mirror</id> 
    <name>My Mirror</name> 
    <url>https://repo.maven.apache.org/alwaysfail</url> 
    <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 

現在我加入這個在我的項目的pom.xml

<repositories> 
    <repository> 
     <id>myproject.repo</id> 
     <url>https://repo.maven.apache.org/maven2</url> 
    </repository> 
</repositories> 

但它不拿起我的項目特定的遠程回購並開始下載,我究竟做錯了什麼?

+0

你似乎誤解mirrorOf的意義。你'settings.xml'配置意味着重定向你在你的POM中進行任何配置重定向到你做成你已經在你的mirrorOf配置中定義的一個的一個。我不明白你爲什麼要阻止使用Maven中心? – khmarbaise

+0

我剛剛禁用了.m2中的測試,以測試如何配置項目特定的repo,即pom.xml中的一個(在我的測試用例中是Maven中心)。我們無法訪問互聯網,我們擁有自己的公司內部存儲庫。我喜歡設置不同的項目特定的內部回購。 – powder366

+0

只在settings.xml中配置內部存儲庫管理器,這意味着在URL中使用內部存儲庫的URL,並且不要將存儲庫放入pom文件中...... – khmarbaise

回答

6

setting.xml允許覆蓋定義在pom.xml,而不是相反。如果你想在一個特定的構建不使用壓倒一切的settings.xml,你可以準備其他的設置文件,並明確調用它:

$ mvn install -s /path/to/no-repo-override.xml 
+0

如果我刪除我的settings.xml並僅在我的pom.xml的上述然後將URL更改爲一個錯誤的鏈接仍然下載!我只希望我的pom.xml是定義在那裏我得到我的依賴關係的URL。我怎樣才能做到這一點?所以如果pom.xml url錯了,它會失敗。 – powder366