从命令行执行依赖插件时如何使maven使用凭据
How to make maven use credentials when executing dependency plugin from command line
我有一个私有 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
是在没有 username/password 组合的情况下调用的。
那么问题来了 - 是否可以调用插件,以便执行使 Maven 考虑使用其设置文件中规定的身份验证的任何进程?
当使用 remoteRepositories
属性 时,插件似乎没有使用保存的凭据。使用 repositoryId
进行的测试对我来说按预期工作。
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -DrepositoryId=some.id -Dartifact=groupId:artifactId:1.1.1
有效的 pom 必须包含存储库和 url 用于存储库。如果您打算 运行 在一个没有任何 pom.xml 的空目录中,那么您的存储库定义将需要移动到 settings.xml
我有一个私有 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
是在没有 username/password 组合的情况下调用的。
那么问题来了 - 是否可以调用插件,以便执行使 Maven 考虑使用其设置文件中规定的身份验证的任何进程?
当使用 remoteRepositories
属性 时,插件似乎没有使用保存的凭据。使用 repositoryId
进行的测试对我来说按预期工作。
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -DrepositoryId=some.id -Dartifact=groupId:artifactId:1.1.1
有效的 pom 必须包含存储库和 url 用于存储库。如果您打算 运行 在一个没有任何 pom.xml 的空目录中,那么您的存储库定义将需要移动到 settings.xml