У меня есть проект Eclipse, который я пытаюсь построить с использованием Maven, с файлами JAR, которые находятся на моем частном сервере Artifactory, и несколько других репозиториев Maven.
В моем файле POM (до добавления репозитория Artifactory) у меня были указаны репозитории:
<repositories>
<repository>
<id>third-party</id>
<name>Atlassian 3rdParty</name>
<url>https://repo.spring.io/plugins-release/</url>
</repository>
<repository>
<id>ICM</id>
<name>ICM Repository</name>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
</repository>
</repositories>
Репозитории позволяют мне получить доступ к нескольким библиотекам, которые мне нужны для сборки, включая (но не исключительно):
...
<dependency>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
...
У меня есть пара файлов JAR, к которым я хотел бы получить доступ с моего сервера Artifactory. Эти файлы находятся в репозитории, который я создал под названием Factor_Snapshot, и их два: factorbase-1.0.0.jar и lowerbase-1.0.0.jar.
Для того, чтобы получить все через Artifactory (правильно используяэто как прокси для репозиториев remore, я добавил эти репозитории в Artifactory. Затем я использовал ссылку «set me up» в попытке создать правильные записи для файла POM.
Одна вещь, которую я заметил, заключалась в том, чтоЯ не могу заставить сгенерированные записи включать репозиторий Factor_Snapshot. Кажется, сгенерированные записи включают только репозитории libs-release и libs-snapshot, которые были там раньше. Когда я нажимаю Generate Maven Settings и выбираю снимок, мне разрешают тольковыбрать libs-snapshot, gradle-dev, libs-release и т. д. Невозможно выбрать репозиторий моментальных снимков Factor_Snapshot. Сгенерированные настройки показаны ниже:
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<username>${security.getCurrentUsername()}</username>
<password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
<id>central</id>
</server>
<server>
<username>${security.getCurrentUsername()}</username>
<password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
<id>snapshots</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://192,168.1.230:8081/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://192,168.1.230:8081/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://192,168.1.230:8081/artifactory/libs-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://192,168.1.230:8081/artifactory/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
Конечно, поскольку неткажется, файл settings.xml для размещения активных профилей в Eclipse, я сомневался, что я могувсе равно буду использовать этот файл. Также: неясно, как получить зашифрованные пароли, на которые есть ссылки в файле.
Я добавил следующие зависимости, основанные на том, как я их организовал на своем сервере Artifactory:
...
<dependency>
<groupId>com.factor3</groupId>
<artifactId>lowerbase</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.factor3</groupId>
<artifactId>factorbase</artifactId>
<version>1.0.0</version>
</dependency>
...
Iповерьте, я их правильно настроил. Я получил сообщения об ошибках после сохранения файла POM, в котором говорилось, что артефакты lowerbase: jar и factorbase: jar отсутствуют. Это было ожидаемо, потому что я еще не включил декларацию репозитория.
В итоге я угадал объявление репо, поэтому я создал следующие записи в моем файле POM, основываясь на документации Artifactory и способе, которымРепозиторий был настроен:
<repositories>
<repository>
<id>snapshots</id>
<name>soliandisk</name>
<url>http://192,168.1.230:8081/artifactory/Factor_Snapshot</url>
</repository>
<repository>
<id>third-party</id>
<name>Atlassian 3rdParty</name>
<url>https://repo.spring.io/plugins-release/</url>
</repository>
<repository>
<id>ICM</id>
<name>ICM Repository</name>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
</repository>
</repositories>
Но когда я добавил репозиторий Factor_Snapshot, теперь я получаю сообщения об ошибках: 1026 * all отсутствуют артефакты JAR-файла - даже артефакты факторической и нижней базы!
Я знаю, что чего-то не хватает в конфигурации, но я не знаю что.
Как настроить Artifactory и мой файл POM, чтобы я мог получить все необходимые JAR-файлы?