Разверните проект Maven в локальной службе Artifactory.

У меня есть форк проекта webjar для локальной работы в среде моей компании. Мы используем Artifactory/Ivy для управления зависимостями.

В настоящее время Smart Table (и другие веб-файлы) pom.xml показывают следующее для развертывания:

        <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.5</version>
            <extensions>true</extensions>
            <configuration>
                <serverId>sonatype-nexus-staging</serverId>
                <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                <autoReleaseAfterClose>true</autoReleaseAfterClose>
            </configuration>
        </plugin>

По умолчанию он публикуется в Sonatype, что хорошо для общедоступных проектов с открытым исходным кодом, если у вас есть учетные данные для выпуска.

Однако в настоящее время мы хотим работать локально над ответвлением проекта и развертывать его на нашем локальном сервере Artifactory. Вклады (в реальный проект) будут распространяться через запрос на слияние, поэтому мы не заинтересованы в переходе в репозиторий Sonatype.

Вопрос

Как изменить Maven pom.xml, чтобы mvn deploy развертывался в локально сконфигурированном сервисе Artifactory? (Конечно, для каких учетных данных хранятся в конфигурации Maven)

Бонусный вопрос

Могу ли я указать Maven публиковать с использованием макета Ivy или создать новый репозиторий макета Maven в Artifactory?


person usr-local-ΕΨΗΕΛΩΝ    schedule 28.08.2015    source источник


Ответы (1)


Первый вариант — использовать стандартный плагин развертывания Maven.

<distributionManagement>
    <repository>
      <id>repo-id</id>
      <name>Artifactory</name>
      <url>http://server:8081/artifactory/repo-id</url>
    </repository>
  </distributionManagement>

Вы должны настроить файл settings.xml, чтобы определить соответствующие записи, предоставляющие информацию для аутентификации. Записи сервера сопоставляются с различными частями распределения управления с помощью их элементов.

<server>
   <id>repo-id</id>
   <username>repo-username</username>
   <password>password/encrypted password</password>
</server>

Второй вариант — использовать плагин Maven Artifactory JFrog, доступный по адресу репозиторий JCenter в Bintray

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.jfrog.buildinfo</groupId>
            <artifactId>artifactory-maven-plugin</artifactId>
            <version>2.4.0</version>
            <inherited>false</inherited>
            <executions>
                <execution>
                    <id>build-info</id>
                    <goals>
                        <goal>publish</goal>
                    </goals>
                    <configuration>
                        <deployProperties>
                            <gradle>awesome</gradle>
                            <review.team>qa</review.team>
                        </deployProperties>
                        <publisher>
                            <contextUrl>https://server:8081/artifactory</contextUrl>
                            <username>username</username>
                            <password>{DESede}...</password>
                            <repoKey>libs-release-local</repoKey>
                            <snapshotRepoKey>libs-snapshot-local</snapshotRepoKey>
                        </publisher>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Через плагин Maven Artifactory Artifactory полностью интегрируется со сборками Maven и позволяет вам делать следующее:

  1. Прикрепите свойства к опубликованным артефактам в метаданных Artifactory.
  2. Захватите объект BuildInfo, который можно передать в Artifactory REST API, чтобы обеспечить полностью отслеживаемый контекст сборки.
  3. Автоматически публиковать все артефакты сборки в конце сборки.

Более подробные примеры использования плагина можно найти в этом Github. проект.

Дополнительный вопрос

Maven можно развернуть только в репозиторий макетов Maven2 (по умолчанию) или Maven1 (устаревший). Вам нужно будет создать новый репозиторий Maven в Artifactory.

person Dror Bereznitsky    schedule 28.08.2015