Maven Deploy 中是否可以在命令行中传递密码?

问题描述 投票:0回答:4

这就是它当前的工作方式,这就是 Maven 部署插件用法

pom.xml

[...]
  <distributionManagement>
    <repository>
      <id>internal.repo</id>
      <name>MyCo Internal Repository</name>
      <url>Host to Company Repository</url>
    </repository>
  </distributionManagement>
[...]

设置.xml

[...]
    <server>
      <id>internal.repo</id>
      <username>someUser</username>
      <password>somePassword</password>
    </server>
[...]

我想要实现的是找到一种在命令行输入用户名和密码的方法。达到

mvn deploy -someUser -somePassword

java maven pom.xml
4个回答
54
投票

settings.xml
被认为是个人的,因此用户名+密码存储在 (user-)
settings.xml
中。所以一般来说没有理由将它们作为参数传递。 (顺便说一句,密码可以在这里加密存储)
maven-deploy-plugin
没有选项通过命令行传递它们。然而,我见过这样的黑客行为:

<username>${internal.repo.username}</username>

现在你可以做

-Dinternal.repo.username=someUser


49
投票

我将在这里列出完整的解决方案,但基本上 Robert Scholte 的解决方案非常有效。

在您的

~/.m2/settings.xml
中您应该有以下内容

<settings>
    <servers>
        <server>
            <id>${repo.id}</id>
            <username>${repo.login}</username>
            <password>${repo.pwd}</password>
        </server>
    </servers>
</settings>  

然后你就

mvn  -Drepo.id=myRepo -Drepo.login=someUser -Drepo.pwd=somePassword clean install

您甚至可以使用环境变量(例如,如果您在远程服务器/容器上执行此操作):

mvn -Drepo.id=$REPO_ID -Drepo.login=$REPO_LOGIN -Drepo.pwd=$REPO_PWD clean install


5
投票

这也有效:

<server>
  <id>${repo.id}</id>
  <username>${repo.username}</username>
  <password>${repo.password}</password>
</server>

0
投票

它对我来说工作正常,我们可以定义用户名和密码 可变鬃毛任何东西,我们选择,但我们必须使用

repositoryId
settings.xml 中 id 的变量。

已使用maven版本“Apache Maven 3.6.3 (Red Hat 3.6.3-13)”进行测试

将此代码段添加到 settings.xml 中:

<servers>
  <server>
    <id>${repositoryId}</id>
    <username>${repo.login}</username>
    <password>${repo.pwd}</password>
  </server>
</servers>

运行此代码片段将文件上传到 Nexus :

mvn deploy:deploy-file -DrepositoryId=<repoid> -Drepo.login=<username> -Drepo.pwd=<password> -Durl=http://<url of Nuxus>:<port>/repository/<repository space> -Dfile=<file location> -DgroupId=<Group Id> -DartifactId=<artfact id>  -Dversion=<version> -Dpackaging=<packaging> -Dclassifier=<classifier> -X
© www.soinside.com 2019 - 2024. All rights reserved.