经过多次反复试验,我得出了一个与 Raghuram 非常相似的配置。然而,使用档案,我发现了一两件事可能仍然值得注意。另外,我在我的配置中使用了镜像以供我的项目访问(<distributionManagement/>
在 pom.xml 中设置),而不是直接访问存储库。
这是我的 maven settings.xml 的相关部分:
<!-- set up servers to point to mirror, for use in project pom -->
<servers>
<server>
<id>my.snapshots</id> <!-- use name of the mirror here -->
<username>user</username>
<password>pwd</password>
</server>
</servers>
<!-- map mirror names to actual repositories -->
<mirrors>
<!-- leave the default mirror in place -->
<mirror>
<id>archiva.default</id>
<mirrorOf>*</mirrorOf>
<url>http://server:port/archiva/repository/internal/</url>
</mirror>
<!-- enter my own -->
<mirror>
<id>my.snapshots</id>
<mirrorOf>archiva.snapshots</mirrorOf>
<url>http://server:port/archiva/repository/snapshots/</url>
</mirror>
<mirrors>
<!-- activate the repo for artifact downloads by setting profile -->
<profiles>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository> <!-- mirror will be used during runtime instead of this -->
<id>archiva.snapshots</id> <!-- do not use mirror name here -->
<url>http://server:port/archiva/repository/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
我发现我必须在该部分中提供与该<mirrors>
部分不同的 id <profiles>
,因此我似乎不允许为它们提供与 Raghuram 相同的名称。
现在,有了 settings.xml,我开始更改<distributionManagement>
我项目的 pom.xml 中的部分。准确地说,我在我所有项目的父级 pom 中更改了此设置:它主要包含该<distributionManagement>
部分,几乎没有其他内容。此父 pom 本身已部署到档案。
这是父 pom.xml 的相关部分:
<distributionManagement>
<repository>
...
</repository>
<snapshotRepository>
<id>my.snapshots</id>
<name>Archiva Managed Snapshot Repository</name>
<url>http://server:port/archiva/repository/snapshots</url>
<layout>default</layout>
</snapshotRepository>
</distributionManagement>
这种精简的东西,我认为,它有一些好处: