gpt4 book ai didi

maven - 如何合并maven设置文件

转载 作者:行者123 更新时间:2023-12-01 15:44:32 30 4
gpt4 key购买 nike

我被添加到另一个工作团队。两个团队都使用他们自己的 Nexus 服务器,并为我提供了他们自己的设置文件,所以目前我必须做很多跳圈以确保我使用正确的 settings.xml 文件来构建项目。有没有合并这些文件的好方法?我一直在浏览 Maven 文档,但真的很困惑。设置文件如下(已删除识别信息)

团队 1 设置文件

<settings>
<mirrors>
<mirror>
<id>Nexus</id>
<name>Company Nexus Public Mirror</name>
<url>http://build.company.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<servers>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>password1</password>
</server>
<server>
<id>releases</id>
<username>deployment</username>
<password>password2</password>
</server>
</servers>
<activeProfiles>
<activeProfile>jenkins</activeProfile>
</activeProfiles>
</settings>

团队 2 设置文件
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://domain.company.com:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
<servers>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>password3</password>
</server>
<server>
<id>releases</id>
<username>deployment</username>
<password>password4</password>
</server>

</servers>
</settings>

我尝试合并 <mirrors>部分,因此列出了两个镜像,但只构建了一个团队的代码。我也不明白服务器 ID 是如何工作的。我将为不同的服务器使用不同的用户名/密码组合。我认为服务器 id 应该与镜像部分中的 id 匹配,但显然情况并非如此。但如果不是这样,maven 怎么知道要使用哪个快照或发布服务器?

最佳答案

您必须使用以下命令检查在部署 Artifact 期间 maven 采用的设置:

mvn help:effective-settings

有时,您可能会使用本地设置和全局设置(首先使用 maven 安装提供的设置,然后使用存储库提供的设置),但是 maven 无法同时识别两者。使用此命令,您可以验证 maven 在部署期间采用的实际设置。此外,您可以找到 maven 正在获取的实际文件,因此,根据服务器所需的配置正确修改文件(例如,使用 vim)。

请记住,settings.xml 文件可能存在于两个位置:
  • Maven安装目录

    $M2_HOME/conf/settings.xml
  • 用户特定的设置文件

    ~/.m2/settings.xml

  • If both files exists, their contents gets merged, with the user-specific settings.xml being dominant. https://maven.apache.org/settings.html

    关于maven - 如何合并maven设置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35052226/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com