从命令行执行依赖插件时如何使Maven使用凭据

时间:2018-11-20 00:58:11

标签: maven maven-dependency-plugin

我有一个私有的Maven存储库。它是在项目的pom.xml中定义的

    <repository>
        <id>some.id</id>
        <url>https://some.host/artifactory/some.id</url>
    </repository>

在我的~/.m2/settings.xml中,我具有正确的身份验证块:

    <server>
        <id>some.id</id>
        <username>pawel.veselov@domain.com</username>
        <password>{some-fancy-password-hash-goes-here}</password>
    </server>

在构建项目时,Maven可以像预期的那样毫无问题地访问存储库。在调试输出时,我可以看到它应用了凭据。

但是当我尝试直接下载工件时,看起来Maven甚至没有考虑设置文件。

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
  -DremoteRepositories=some.id::::https://some.host/artifactory/some.id \
  -Dartifact=groupId:artifactId:1.1.1

不发送用户名。我在调试输出中看到,BasicRepositoryConnector是在没有用户名/密码组合的情况下调用的。

问题就来了-是否可以调用插件,以便执行使Maven考虑使用其设置文件中所述的身份验证的任何过程?

1 个答案:

答案 0 :(得分:1)

使用 string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness."; var words = test.Split(' '); var wordArray = words.Select((w, i) => (i % 2 != 0) ? (w+ " asd ") : (w + " ") ).ToArray(); var res = string.Join("", wordArray); 属性时,插件似乎没有使用保存的凭据。相反,使用remoteRepositories进行测试对我来说是预期的结果。

repositoryId

有效pom必须包含存储库和该存储库的url。如果您打算在没有任何pom.xml的空目录中运行此文件,则您的存储库定义将需要移至settings.xml