Paw*_*lov 7 maven maven-dependency-plugin
我有一个私有 Maven 存储库。它在项目的pom.xml中定义
<repository>
<id>some.id</id>
<url>https://some.host/artifactory/some.id</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
在我的中~/.m2/settings.xml,我有正确的身份验证块:
<server>
<id>some.id</id>
<username>pawel.veselov@domain.com</username>
<password>{some-fancy-password-hash-goes-here}</password>
</server>
Run Code Online (Sandbox Code Playgroud)
构建项目时,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
Run Code Online (Sandbox Code Playgroud)
不传输用户名。我可以在调试输出中看到,调用时BasicRepositoryConnector没有用户名/密码组合。
所以问题是 - 是否可以调用一个插件,以便执行任何使 Maven 考虑使用其设置文件中声明的身份验证的过程?
remoteRepositories使用属性时,插件似乎没有使用保存的凭据。相反,测试使用repositoryId对我来说按预期工作。
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -DrepositoryId=some.id -Dartifact=groupId:artifactId:1.1.1
Run Code Online (Sandbox Code Playgroud)
有效的 pom 必须包含存储库和存储库的 url。如果您计划在没有任何 pom.xml 的空目录中运行它,那么您的存储库定义将需要移动到 settings.xml