Создайте и разверните проект Maven на Nexus через Jenkins

Я настроил простой проект maven freestyle. Мне удалось успешно построить проект, но не развернуть его в Nexus. Я получаю эту ошибку:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy (deploy-deploy) в проекте eqs_utility: не удалось развернуть артефакты: не удалось найти артефакт com.companyName.eqs: eqs_utility:jar:1.0.1-20190529.191240-1 в нексусе (https://nexus.companyRepo.com/repository/maven-snapshot/) -> [Справка 1]

Я пытался изменить конфигурации, чтобы упростить проект, но ничего не вышло. Изменения в файле Setting.xml.

ОТРЕДАКТИРОВАНО Я добавил следующее в свой POM.xml

    <distributionManagement>
        <repository>
            <uniqueVersion>false</uniqueVersion>
            <id>nexus</id>
            <name>Company Nexus Repository</name>
            <url>https://nexus.mycompany.com/repository/maven-release/</url>
            </repository>    
        <snapshotRepository>
            <uniqueVersion>true</uniqueVersion>
            <id>nexus</id>
            <name>Company Nexus Snapshots</name>
            <url>https://nexus.companyName.com/repository/maven-snapshot/</url>
        </snapshotRepository>
    </distributionManagement>

Затем обновил мой settings.xml этим

<server>
      <id>nexus</id>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>


    <!-- Another sample, using keys to authenticate. -->
    <server>
      <id>nexus</id>
      <username>NexusUser</username>
      <password>MyLongTokenValueHere</password>
    </server>

Является ли репо типом снимка (имя maven-snapshot)? Версия jar выглядит как тип выпуска. Подозреваю несоответствие. Я бы сделал это ответом, если бы эта информация была предоставлена.

joedragons 30.05.2019 01:21

@joedragons, версия Jar выглядит как 1.0.1-SNAPSHOT: 1.0.1-20190529.191240-1 версия 1.0.1, первая загрузка -1, отметка времени 20190529.191240

Ian W 30.05.2019 02:03

@ jason-corbett, запутался ... Вы отметили ответ как правильный, но также отредактировали вопрос, чтобы он соответствовал указаниям в ответе. Сейчас работает или нет? Та же ошибка?

Ian W 30.05.2019 22:36

Это работает, но у нас сейчас другая проблема.

Jason Corbett 04.06.2019 15:00

@ jason-corbett, возможно, тогда вы могли бы отредактировать свой вопрос, чтобы отразить исходное состояние и указать в комментариях, или более четкое дополнительное редактирование, были и другие проблемы. Если публикуется отдельный вопрос S/O, ссылка также может быть полезной. В настоящее время другим неясно, как «правильный ответ» решает вопрос.

Ian W 05.06.2019 03:24
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
5
1 441
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно Настройка подключаемого модуля Apache Maven Deploy

Вам нужен раздел:

  <distributionManagement>
    <repository>
      <id>internal.repo</id>
      <name>MyCo Internal Repository</name>
      <url>Host to Company Repository</url>
    </repository>
  </distributionManagement>

Поскольку вы используете Nexus, вам, вероятно, понадобится раздел в pom, который соответствует вашим репозиториям Nexus (один для моментальных снимков и один для артефактов выпуска, поскольку вы не можете объединить их в Nexus):

<distributionManagement>
   <repository>
      <id>mavenrepository</id>
      <url>http://mavenrepository.companyName.com/nexus/content/repositories/m3</url>
   </repository>
   <snapshotRepository>
      <id>tmavenrepository</id>
      <url>http://mavenrepository.companyName.com/nexus/content/repositories/m3-snapshots</url>
   </snapshotRepository>
</distributionManagement>

Плюс, конечно, в ваших местных настройках или другом частном месте

    <server>
      <id>mavenrepository</id>
      <username>maven</username>
      <password>foobar</password>
    </server>

Это описано Сонатип и более чистым другими.

Другие вопросы по теме