【问题标题】:Maven release plugin git credentialsMaven 发布插件 git 凭据
【发布时间】:2015-04-01 16:25:25
【问题描述】:

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

问题是 - 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>

有什么办法可以让它工作吗?我无法相信像这样简单且极其常见的任务没有简单的标准解决方案。

【问题讨论】:

    标签: git maven authentication maven-release-plugin


    【解决方案1】:

    基于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 增强是在版本 2.3 中作为ticket MRELEASE-420 的一部分引入的。例如,如果您使用的是 Maven 3.0.5,那么默认情况下您只使用 2.0 版的 maven-release-plugin。太老了。通过在您的 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>
    

    【讨论】:

    • 也试过了,没有任何效果,忘了在问题中提到这一点。我们没有指定版本,我假设 maven 在这种情况下会选择最新版本?
    • 似乎我们运行了旧版本的发布插件,它似乎可以与最新版本一起使用。谢谢!
    • 始终通过显式使用 pluginManagement 来定义插件版本,否则您将无法重现结果。
    • Maven不会自动使用最新版本的插件,因为每次你的任何插件发布新版本时,这都会改变你的构建。
    • 像魅力一样工作......你:-)
    猜你喜欢
    • 2012-10-14
    • 2013-09-29
    • 2014-08-05
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多