git - Maven 发布插件 git 凭据

标签 git maven authentication maven-release-plugin

我们正在使用 Jenkins,只是从没有身份验证的基于文件的 git repo 切换到使用通过 http 进行适当身份验证的 GitBlit。

问题是 - ma​​ven 应该如何在批处理模式下验证自己

-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您必须使用特殊属性 project.scm.id 来定义适当的 server entry in your settings.xml file. 的 ID

<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 . project.scm.id 增强功能作为 ticket MRELEASE-420 的一部分在版本 2.3 中引入。 .例如,如果您使用的是 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>

关于git - Maven 发布插件 git 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282572/

相关文章:

git - 在 "git add"之后简化 "git diff"

git - 在 Git 中的悬空提交中搜索字符串

maven - org.wildfly.bom 和 org.jboss.spec 之间的区别,用于 Java EE 7 with maven

java - Dagger 2 没有生成类

安装后mysql登录[错误1045(28000): Access denied for user 'mike' @'localhost' (using password: YES)]

php - 身份验证过程,为什么将sessionID存储在数据库中?

asp.net-mvc - 窗口身份验证在 MVC4 中不起作用

git - Jenkins 的工作在将提交推送到 Git 仓库时挂起

Java插件库着色

git - 如何从 git 中删除现有的版本控制文件