2013-07-07 40 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。决定你想要哪一个,并清理另一个。

相关问题