我使用的是Nexus Repository Manager V3.1.0-04。当我尝试mvn deploy
一个jar工件到我的存储库时,我遇到了以下问题。
我认为这可能与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:build-helper-maven-plugin:3.0.0:attach-artifacts(attach-artifacts)rest-service:执行目标org.codehaus.mojo:build-helper-maven-plugin:3.0.0:attach-artifact失败:对于工件{com.xyz:rest-service:0.0.1-snapshot:jar}:附加的工件必须具有与其对应的主工件不同的ID。->[帮助1]
在所讨论的存储库的设置中(错误消息中的URL提到了“快照”存储库),存储部分:禁用严格的内容类型验证设置。该设置的描述是:验证上载到此存储库的所有内容都是适合存储库格式的MIME类型
。
要回答第二个问题,为什么:在编辑器中加载JAR文件。您可能会看到一个shell脚本头(Bash)。在这种情况下,JAR文件是一个“可执行的JAR”,shell脚本头是一个来自Spring Boot的启动脚本。因为这个Nexus会错误地将文件检测为shell脚本。
示例:
#!/bin/bash
#
# . ____ _ __ _ _
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
# ' |____| .__|_| |_|_| |_\__, | / / / /
# =========|_|==============|___/=/_/_/_/
# :: Spring Boot Startup Script ::
#
# ... etc
我的名为“TestProject”的Java/Maven项目与我的jenkins and nexus repo挂钩: 我的pom.xml看起来是: 正如预期的那样,jenkins将工件上传到Nexus,看看jenkins build的控制台输出,如下所示: 问题是: 如果我在pom.xml中指定的版本是
我正在使用Jenkins的Nexus插件向Nexus发布一个应用程序。我正在尝试让管道发布快照版本。 我查看了Nexus中的.xml并将其复制到之前没有这个.xml文件的repo中,然后再次尝试。相同的错误消息。我删除了Nexus中的快照文件夹,然后再试一次,同样的错误。我尝试更新快照版本号,同样的错误。我在Nexus没有访问任何配置的权限,而且这是我第一次在Jenkins周围。pom中的组、工件
主要内容:使用 Maven 部署构件到 Nexus ,手动上传构件如果仅仅是为了代理远程的公共仓库,那么 Nexus 的代理仓库就完全能够满足需要,但是我们知道,Nexus 除了代理仓库外,还有另一种仓库:宿主仓库。 宿主仓库的主要作用是存储公司或组织内部的构件,以及一些无法从公共仓库获取的第三方构件(JDBC 驱动),供用户下载使用。用户可以通过配置 Maven 将构件自动部署到 Nexus 宿主仓库,也可以在 Nexus 界面手动上传构件。 使用 Maven
我试图将工件部署到nexus。当我尝试使用本地机器时,它工作正常。但是当我尝试在另一台机器中使用nexus时,它会抛出错误。 我已经配置了
问题内容: 我正在编写一个测试程序,如下所示: 当用户单击按钮A时,它将打开50个JFrame。 当用户单击按钮B时,它将放置所有通过单击按钮A显示的JFrame。 我发现单击按钮B后内存不会减少。我使用任务管理器(在Windows中为+ + ,并检查“ java”的内存使用情况)确定了这一点。 问题答案: 是的,没有办法,无法解决(不仅在Java PL中), 1)实际上,不要在运行时/运行时创建
问题内容: 我有一个在Jenkins中运行的多模块Maven项目。我想将最终的工件(程序集构建中的RPM)部署到Nexus服务器。我认为没有理由部署中间工件(因此没有“ mvn clean deploy”),因为这会在服务器上产生我不需要的额外垃圾。我们正在尝试建立一个持续交付管道,因此我们从未部署过SNAPSHOT版本。Jenkins的各种插件似乎都专注于部署所有工件。我该如何部署自己选择的那个