首页 文章

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

提问于
浏览
2

我想下载一个关闭(认证)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 回答

  • 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

相关问题