我试图添加一个第三方供应商的jar到我们的内部连接存储库。
我试图使用以下命令来完成此操作:
mvn deploy:deploy-file
-DgroupId=acme
-DartifactId=acme
-Dversion=1.0
-Dpackaging=jar
-Dfile=C:\tmp\acme-1.0.jar
-DrepositoryId=Nexus
-Durl=http://myserver:8888/nexus/content/repositories/thirdparty/在我的settings.xml中有以下条目:
<servers>
<server>
<id>Nexus</id>
<username>myusername</username>
<password>mypassword</password>
</server>
</servers>但我知道这个错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:
deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts:
Could not find artifact acme:acme:jar:1.0 in Nexus (http://myserver:8888/nexus/c
ontent/repositories/thirdparty) -> [Help 1]有什么建议吗?
一些相关的信息..。我可以使用以下命令安装到本地存储库:
mvn install:install-file
-DgroupId=acme
-DartifactId=acme
-Dversion=1.0
-Dpackaging=jar
-Dfile=C:\tmp\acme-1.0.jar我也尝试过通过Nexus网络界面上传“人造物品”,使用GAV参数:
Group: acme
Artifact: acme
Version: 1.0
Packaging: jar并选择并添加acme-1.0.jar。这完成得很好,但是项目上的"mvn安装“取决于这个jar,结果是:
Could not find artifact acme:acme:jar:1.0 in Nexus (http://myserver:8888/nexus/content/groups/public)我的pom包含:
<repositories>
<repository>
<id>Nexus</id>
<url>http://myserver:8888/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>任何帮助都很感激..。
PS我知道这个问题与this one非常相似,但问题似乎是使用jenkins url,而不是nexus url。
发布于 2013-04-29 18:47:16
回答我自己的问题。我解决了以下问题:
1)如果您在代理服务器后面(即您在maven settings.xml中设置了代理服务器),但是您的附件服务器是内部的,那么您可能需要在settings.xml中将nexus服务器添加为nonProxyHost。
<proxies>
<proxy>
...
<nonProxyHosts>myserver</nonProxyHosts>
</proxy>
</proxies>我意识到我需要这样做,因为我运行的"mvn deploy:deploy-file"命令似乎根本没有到达nexus。例如,我可以在settings.xml的服务器部分更改repo、用户名或密码,但仍然会得到完全相同的错误。我还可以将部署命令中的url更改为胡言乱语(例如,改为-Durl=notexist),甚至完全关闭nexus,但仍然会得到相同的错误。
2)确保将第三方存储库设置为发行版,而不是快照。为此,转到web,选择第三方存储库的Configuration选项卡,并确保repository被设置为发行版。
我通过查看catalina.out日志(我在Tomcat中将nexus作为一个war运行)发现了这一点,并看到了以下内容:
ERROR org.sonatype.nexus.rest.ContentPlexusResource - Got exception during processing request "PUT http://myserver:888/nexus/content/repositories/thirdparty/acme/acme/1.0/acme-1.0.pom": Storing of item thirdparty:/acme/acme/1.0/acme-1.0.pom is forbidden by Maven Repository policy. Because thirdparty is a SNAPSHOT repository有了这两个修复,"mvn部署:部署-文件“命令,以及上传通过‘上传工件’选项在web工作。
发布于 2013-04-26 05:44:21
登录到nexus控制台并检查公共存储库配置,并查看第三方是否在列表中。
https://stackoverflow.com/questions/16219052
复制相似问题