Я использую Nexus Repository Manager v3.1.0-04. Когда я пытаюсь mvn deploy
jar-артефакт в своем хранилище, я получаю следующую проблему.
[ОШИБКА] Не удалось выполнить цель
org.sonatype.plugins: нексус-стадирования-Maven-плагин: 1.5.1: развернуть
(injected-nexus-deploy) в проекте rest-service: не удалось развернуть
артефакты: не удалось передать артефакт
com.xyz:rest-service:jar:0.0.1-20180504.193415-6 от / до нексуса
(http://nexus.mydomain.io/repository/snapshots/): Не удалось передать
файл:
http://nexus.mydomain.io/repository/snapshots/com/xyz/rest-service/0.0.1-SNAPSHOT/rest-service-0.0.1-20180504.193415-6.jar.
Код возврата: 400, ReasonPhrase: обнаружен тип контента
[application / x-sh], но ожидаемый [application / java-архив]:
ком / хуг / отдых-сервис / 0.0.1-SNAPSHOT / отдых-сервис 0.0.1-20180504.193415-6.jar.
-> [Помощь 1]
Я подумал, что, возможно, это связано с версией nexus-staging-maven-plugin
( ссылка ), но даже если я установлю версию на 1.6.8
(последняя), я получу тот же эффект. В этом посте предлагается использовать build-helper-maven-plugin
, и поэтому я изменил свой pom.xml
следующим образом.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/${artifactId}-${version}.jar</file>
<type>jar</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
Однако сейчас я вижу другую проблему.
[ОШИБКА] Не удалось выполнить цель
org.codehaus.mojo: строить-хелперов-Maven-плагин: 3.0.0: присоедините-артефакт
(attach-artifacts) в проекте rest-service: выполнение attach-artifacts
цели
org.codehaus.mojo: строить-хелперов-Maven-плагин: 3.0.0: присоедините-артефакт
не удалось: для артефакта {com.xyz:rest-service:0.0.1-SNAPSHOT:jar}: An
прикрепленный артефакт должен иметь другой идентификатор, чем соответствующий ему основной
артефакт. -> [Помощь 1]
Обратите внимание, что проект Maven создается Spring Initializer через IntelliJ и является проектом Spring Boot. Не используя плагин Builder Helper , я вижу, что все файлы успешно выгружаются в Nexus до тех пор, пока не завершится загрузка файла jar (на самом деле загрузка завершена, но из-за несоответствия типа содержимого происходит сбой).
Есть идеи, как решить эту проблему? В сообщении, о котором я упоминал, говорится: «Некоторые репозитории maven проверяют содержимое файла», и как мне отключить Nexus (который я контролирую) при проверке содержимого файла? Но настоящая проблема в том, почему тип контента application/x-sh
вместо application/java-archive
?