Подтвердить что ты не робот

Mvn deploy: файл для разных репозиториев для моментального снимка и выпуска версии

Можно ли каким-то образом сообщить maven deploy: цель файла для развертывания в двух независимых артефактах на основе того, является ли версия проекта снимком/выпуском?

Я надеюсь, что может существовать свойство, которое указывает на то, что версия имеет -SNAPSHOT, или, возможно, по умолчанию для artifactory для развертывания (который уже был разработан на основе номера версии).

Я думал об использовании двух разных профилей и разработке, если его снимок в ant путем анализа файла pom.xml, но я предпочел бы более чистое решение, если это возможно.

В настоящее время мой плагин для развертывания выглядит следующим образом, но он просто развертывается до версии artifactory независимо от версии;

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-deploy-plugin</artifactId>
   <version>2.5</version>
   <executions>
      <execution>
        <id>deploy-zip-created-by-ant-to-artifactory</id>
    <phase>deploy</phase>
    <goals>
       <goal>deploy-file</goal>
    </goals>
    <configuration>
       <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
       <url>${project.distributionManagement.repository.url}</url>
       <file>${project.basedir}/Build/deploy/MyArtifact.zip</file>
       <pomFile>${project.basedir}/MyArtifact-pom.xml</pomFile>
    </configuration>
      </execution>
   </executions>
</plugin>

Большое спасибо

4b9b3361

Ответ 1

Если вы определили свои репозитории в своем файле settings.xml, вы можете использовать

mvn deploy:deploy-file -DrepositoryId=releases -DartifactId=... -Durl=

Ответ 2

Наверх здесь, я использовал плагин GMaven, чтобы выбрать репозиторий из раздела distributionManagement POM и сохранить его в свойстве.

Плагин развертывания затем может использовать это свойство.

Ответ 3

Возможно, вы захотите использовать build-helper-maven-plugin для развертывания дополнительного артефакта

Ответ 4

Это, по-видимому, способ Maven:

  <distributionManagement>
    <repository>
      <id>release</id>
      <url>http://my-releases</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <url>http://my-snapshots</url>
    </snapshotRepository>
  </distributionManagement>

При развертывании версии моментального снимка он перейдет в хранилище снимков. Для выпуска без моментального снимка будет использоваться обычный репозиторий.

Просто запустите развертывание и оно будет работать.: -)