通过大量的试验和错误,我得出了一个与Raghuram非常相似的配置。然而,使用archiva,我发现了一两件可能仍然值得注意的事情。此外,我在配置中使用了镜像,以便我的项目(在 pom.xml 中设置)访问,而不是直接访问存储库。<distributionManagement/>
这是我的 maven 设置的相关部分.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>
我发现我必须在章节中给出与章节中不同的id,所以我似乎不允许给他们与Raghuram相同的名称。<mirrors>
<profiles>
现在,有了设置.xml,我开始更改项目的pom.xml部分。确切地说,我在一个pom中更改了此设置,该pom是我所有项目的父级:它主要包含该部分,而不包含其他内容。这个父 pom 本身就部署到了 archiva。<distributionManagement>
<distributionManagement>
这是父 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>
这种简化的东西,我认为它有一些好处: