Maven 发布插件 git 凭据
Maven release plugin git credentials
我们正在使用 Jenkins,并且刚刚从一个基于文件的 git 回购没有身份验证切换到使用 GitBlit 通过 http 进行适当的身份验证。
问题是 - maven 应该如何在批处理模式下验证自身?
用 -Dusername
和 -Dpassword
更新每个作业(并因此将密码存储在作业中)似乎不太可行。我读过 settings.xml 应该通过将 git 服务器指定为 id 来与 git 一起工作,但无论我做什么都没有效果(即发布插件提示输入凭据) .
pom.xml:
<properties>
<project.scm.id>git</project.scm.id>
</properties>
<scm>
<connection>scm:git:http://myserver:8081/r/gitauthtest.git</connection>
<developerConnection>scm:git:http://myserver:8081/r/gitauthtest.git</developerConnection>
</scm>
settings.xml 内容
<settings>
<servers>
<server>
<id>git</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
有什么方法可以让它工作吗?我无法相信像这样简单且极其常见的任务没有简单的标准解决方案。
基于docs you have to use a special property, project.scm.id
, to define the id of the appropriate server entry in your settings.xml file.
<properties>
<project.scm.id>my-scm-server</project.scm.id>
</properties>
以及您的 settings.xml 文件中的以下内容:
<settings>
<servers>
<server>
<id>my-scm-server</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
顺便说一句:检查您是否使用的是最新版本的 maven-release-plugin. The project.scm.id enhancement was introduced in version 2.3 as part of ticket MRELEASE-420。例如,如果您使用的是 Maven 3.0.5,则默认情况下您仅使用 maven-release-plugin 的 2.0 版。太老了。通过在您的 POM 中添加如下内容来修复:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
</plugins>
</pluginManagement>
</build>
我们正在使用 Jenkins,并且刚刚从一个基于文件的 git 回购没有身份验证切换到使用 GitBlit 通过 http 进行适当的身份验证。
问题是 - maven 应该如何在批处理模式下验证自身?
用 -Dusername
和 -Dpassword
更新每个作业(并因此将密码存储在作业中)似乎不太可行。我读过 settings.xml 应该通过将 git 服务器指定为 id 来与 git 一起工作,但无论我做什么都没有效果(即发布插件提示输入凭据) .
pom.xml:
<properties>
<project.scm.id>git</project.scm.id>
</properties>
<scm>
<connection>scm:git:http://myserver:8081/r/gitauthtest.git</connection>
<developerConnection>scm:git:http://myserver:8081/r/gitauthtest.git</developerConnection>
</scm>
settings.xml 内容
<settings>
<servers>
<server>
<id>git</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
有什么方法可以让它工作吗?我无法相信像这样简单且极其常见的任务没有简单的标准解决方案。
基于docs you have to use a special property, project.scm.id
, to define the id of the appropriate server entry in your settings.xml file.
<properties>
<project.scm.id>my-scm-server</project.scm.id>
</properties>
以及您的 settings.xml 文件中的以下内容:
<settings>
<servers>
<server>
<id>my-scm-server</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
顺便说一句:检查您是否使用的是最新版本的 maven-release-plugin. The project.scm.id enhancement was introduced in version 2.3 as part of ticket MRELEASE-420。例如,如果您使用的是 Maven 3.0.5,则默认情况下您仅使用 maven-release-plugin 的 2.0 版。太老了。通过在您的 POM 中添加如下内容来修复:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
</plugins>
</pluginManagement>
</build>