Maven依赖从认证的Nexus中获取人工制品

时间:2017-03-27 14:43:24

标签: maven dependencies artifact

我想下载一个关闭(认证)Nexus的Jar。我希望通过Maven做到这一点,与技术无关(例如,它可以与Nexus或Artifcatory一起使用)。

我找到了这个有趣的插件:https://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html,这适用于中央存储库中的工件,或任何" open"库中。

我的命令是:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -Dartifact=com.test.job:job-template:1.0.0:jar:jar-with-dependencies -Ddest=/tmp/test.jar -DremoteRepositories=http://nexus.test.local/nexus/content/repositories/test-releases/

我收到错误:"未经授权,ReasonPhrase:未经授权"。当然,我必须通过身份验证才能获得这个神器。如何将此凭据提供给此命令? My Maven settings.xml已包含此本地存储库的凭据,但该命令未读取这些凭据(似乎是合乎逻辑的)。

谢谢!

1 个答案:

答案 0 :(得分:3)

~/.m2/settings.xml

中定义服务器代码
...
  <servers>
    <server>
      <id>serverId</id>
      <username>login</username>
      <password>password</password>
    </server>
  </servers>
...

serverId非常重要,您必须在remoteRepositories属性中使用相同的标签,因此您应该运行:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get ... \
-DremoteRepositories=serverId::::http://nexus.test.local/...

当然,您可以根据需要使用任何标签作为server / id