我的gsi-repos
文件中有两个配置文件(my-repos
和settings.xml
),gsi-repos
是默认的有效配置文件。
如何在某些maven项目中激活个人资料my-repos
?这可以在我的项目pom.xml
中完成吗?
的settings.xml
<profiles>
<profile>
<id>gsi-repos</id>
<repositories>
<repository>
<id>cp-releases</id>
<name>CP Releases</name>
<url>http://org.release-server.com/nexus/content/repositories/cp-releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>my-repos</id>
<repositories>
<repository>
<id>my-releases</id>
<name>My Releases</name>
<url>http://my.release-server.com/nexus/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>gsi-repos</activeProfile>
</activeProfiles>
答案 0 :(得分:0)
使用配置文件的替代方法可以是:
如果要区分版本最终在您的nexus中的位置,您可以在settings.xml文件中提供不同的属性。只需在CI服务器上或实际执行mvn deploy
的settings.xml:
[...]
<profiles>
<profile>
<id>nexus-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<repo.releases.url>https://nexus/content/repositories/releases/</repo.releases.url>
<repo.snapshots.url>https://nexus/content/repositories/snapshots</repo.snapshots.url>
<repo.lib-releases.url>https://nexus/content/repositories/libs/</repo.lib-releases.url>
</properties>
</profile>
[...]
所以在你的pom.xml(或匹配的父pom)中:
[...]
<distributionManagement>
<repository>
<id>releases</id>
<name>Managed Release Candidate Repository</name>
<url>${repo.releases.url}</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Managed Snapshots Repository</name>
<url>${repo.snapshots.url}</url>
</snapshotRepository>
</distributionManagement>
[...]
将其工件部署到libs存储库的项目只会为该URL使用不同的属性。
您可以将它放入projet-parent.pom和libs-parent.pom中 - 因此任何使用其中一个作为其父级的pom都不必处理distributionManagement。
可以将distributionManagement添加到配置文件中并根据某些激活(例如,如果存在某个文件)激活它们:http://maven.apache.org/guides/introduction/introduction-to-profiles.html 但我建议不要过度使用maven中的配置文件。