Разрешить артефакты, используя нексус в Jenkins
Я пытаюсь создать частные артефакты maven на некоторых VPS, работающих под управлением OpenShift Origin. Я настроил локальную службу Nexus ( http://nexus-ci.apps.intrinsic.world/content/groups/public/) и уже преуспел (автоматически) с использованием другого экземпляра Jenkins для создания некоторых jar-файлов и загрузки их туда,
Теперь я хочу, чтобы этот другой отдельный экземпляр Jenkins (так что нет общего репозитория) просто использовал nexus, чтобы найти все его maven-зависимости. Чтобы добиться этого, я попытался предоставить следующее settings.xml
документ к основной конфигурации Дженкинса, но безрезультатно:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>nexus</id>
<activation>
<property>
<name>nexus</name>
<value/>
</property>
</activation>
<repositories>
<repository>
<id>nexus-repository</id>
<url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-plugin-repository</id>
<url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
Что мне не хватает?
2 ответа
Вы должны использовать группу, переопределить центральную и настроить зеркало. Подробности с примером есть в документации.
Также вы можете посмотреть на использование config-file-provider-plugin. Я записал несколько видео о настройке Дженкинса в серии " Советы из окопов ".
Если вы хотите, чтобы все зависимости загружались через Nexus, вы должны использовать зеркальное определение вместо дополнительных репозиториев:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
</mirror>