我使用的是Nexus Repository Manager v3.1.0-04。当我尝试将mvn deploy
jar工件存储到我的存储库时,我遇到了以下问题。
[错误]无法执行目标 org.sonatype.plugins:NEXUS-分期,Maven的插件:1.5.1:部署 (inject-nexus-deploy)项目休息服务:部署失败 工件:无法传输工件 com.xyz:rest-service:jar:0.0.1-20180504.193415-6 from / to nexus (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-archive]: COM / XYZ / REST的服务/ 0.0.1-SNAPSHOT / REST的服务,0.0.1-20180504.193415-6.jar。 - > [帮助1]
我认为这可能与nexus-staging-maven-plugin
(link)的版本有关,但即使我将版本设置为1.6.8
(最新),我也会得到相同的效果。此post建议您使用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:连接神器 项目rest-service上的(attach-artifacts):执行attach-artifacts 目标 org.codehaus.mojo:建立辅助性Maven的插件:3.0.0:连接神器 失败:对于神器{com.xyz:rest-service:0.0.1-SNAPSHOT:jar}: 附加工件必须具有与其对应主要不同的ID 神器。 - &GT; [帮助1]
请注意,Maven项目由Spring Initializer通过IntelliJ生成,是一个Spring Boot项目。在不使用Builder Helper插件的情况下,我可以看到所有文件都已成功上传到Nexus,直到jar上传完毕(实际上已完成上传,但因为内容类型不匹配,它会失败)。
有关如何解决此问题的任何想法?我提到的帖子说&#34;一些maven存储库检查文件内容,&#34;那么,如何在检查文件内容时禁用Nexus(我已控制)?但真正的问题是,为什么内容类型application/x-sh
而不是application/java-archive
?
答案 0 :(得分:4)
在相关存储库的设置中(错误消息中的URL提及&#34;快照&#34;存储库),存储部分:禁用严格内容类型验证设置。该设置的说明是:Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format
。
要回答第二个问题,为什么:在编辑器中加载JAR文件。您可能会看到一个shell脚本标题(Bash)。在这种情况下,JAR文件是一个&#34;可执行的JAR&#34;,shell脚本头是Spring Boot的启动脚本。因此,Nexus错误地将文件检测为shell脚本。
示例:
#!/bin/bash
#
# . ____ _ __ _ _
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
# ' |____| .__|_| |_|_| |_\__, | / / / /
# =========|_|==============|___/=/_/_/_/
# :: Spring Boot Startup Script ::
#
# ... etc