Через много проб и ошибок я пришел к конфигурации, очень похожей на конфигурацию Рагурама.Тем не менее, используя архив, я нашел одну или две вещи, которые все еще заслуживают внимания.Кроме того, я использовал зеркала в моей конфигурации для доступа к моим проектам (установлен в <distributionManagement/>
в pom.xml) вместо прямого доступа к репозиториям.
Это релевантная часть моих настроек 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>
Я обнаружил, что в разделе <mirrors>
я должен был указать другие идентификаторы, чем в разделе <profiles>
, поэтому мне, по-видимому, не разрешили дать им то же имя, что иРагурам сделал.
Теперь, когда у нас есть файл 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>
Этот вид упрощенных вещей, и я думаю, что он имеет некоторыеПреимущества:
Теперь я могу создавать проекты в зависимости от моих собственных артефактов (включая родительский pom), не имея ни одного из этих артефактов в моем локальном репозитории сборки (я стер свой локальный репозиторий дляэто проверяется).
Загрузка (разделы <dependencies>
файла pom.xml), а также загрузка (разделы <distributionManagement>
файла pom.xml) теперь обрабатываются с помощьюзеркала.