2013-07-07 69 views
11

我可以在Maven settings.xml中使用單個服務器憑證擁有多個存儲庫嗎?在Maven中爲多個存儲庫設置單個服務器憑證

我們使用Maven 3.0.4部署文物的Nexus專業版2.2.1

我們有相同的服務器上的多個倉庫,並且用戶使用相同的憑據訪問所有這些存儲庫。

settings.xml中多個存儲庫使用相同的憑據:

<repositories> 
<repository> 
    <id>Staging-group</id> 
    <url>http://server/nexus/content/groups/Staging-group</url> 
<repository> 
    <id>RELEASES</id> 
    <url>http://server/nexus/content/repositories/RELEASES</url> 
</repository> 
<repository> 
    <id>INTERNALS</id> 
    <url>http://server/nexus/content/repositories/INTERNALS</url> 
</repository> 
<repository> 
    <id>SNAPSHOTS</id> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 
</repositories> 
..... 
<servers> 
<server> 
    <id>Staging-group</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>RELEASES</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>SNAPSHOTS</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>INTERNALS</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
</servers> 

Nexus採用Active Directory身份驗證。因此,每當用戶更改他或她的Windows密碼時,他們都需要更改settings.xml文件中的全部四個條目。

是否有一種方法可以爲所有存儲庫聲明一次憑據?

感謝, 的Eyal

回答

5

是的,至少我認爲這應該工作。

而不是

<repository> 
    <id>SNAPSHOTS</id> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 

使用

<repository> 
    <id>nexus</id> 
    <name>SNAPSHOTS</name> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 

然後,只需引用關係作爲您的服務器ID。

+0

看起來像這是工作。但是,在構建任何項目時,「驗證」階段會產生此警告:[[WARNING]'profiles.profile [development] .repositories.repository.id'必須是唯一的,但找到重複的存儲庫,其ID爲nexus @ C:\ Documents and Settings \ user \ .m2 \ settings.xml' –

+0

考慮到這是一個警告,你應該沒問題。在內部,該名稱是分發管理下存儲庫的唯一條目,主要用於將快照與發佈工件分開。 –

+0

這對mvn 3.5.2來說不適用於我,如果我使用相同的id定義多個存儲庫,只有maven使用最後一個存儲庫來解決依賴關係,有沒有人想出瞭如何解決這個問題? –

0

似乎我不允許評論,因爲我沒有足夠的經驗。如果:)但是,關於警告profiles.profile[development].repositories.repository.id必須是唯一的,我發現這是兩個settings.xml文件被發現。一個在maven安裝的${maven-install}/conf/settings.xml以及一個在~/.m2/settings.xml。決定你想要哪一個,並清理另一個。

相關問題