Maven release plugin git credentials

穿精又带淫゛_ 提交于 2019-11-30 16:27:57

问题


We are using Jenkins and just switched from a file based git repo without authentication to using GitBlit with proper authentication over http.

The problem is - how is maven supposed to authenticate itself in batch mode?

Updating each job with -Dusername and -Dpassword (and thus storing the password in the jobs) doesn't seem very feasible. I've read that settings.xml is supposed to work with git by specifying the git server as the id, but whatever I do it has no effect (i.e the release plugin prompts for credentials).

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 contents

<settings>  
   <servers>  
      <server>
         <id>git</id>  
         <username>myUser</username>  
         <password>myPassword</password>  
      </server>   
   </servers>
</settings>

Is there any way to get this working? I cannot believe that a task as simple and extremely common as this doesn't have an easy standard solution.


回答1:


Based on the 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>

And the following in your settings.xml file:

<settings>  
   <servers>  
      <server>
         <id>my-scm-server</id>  
         <username>myUser</username>  
         <password>myPassword</password>  
      </server>   
   </servers>
</settings>

BTW: Check if you are using the most recent version of maven-release-plugin. The project.scm.id enhancement was introduced in version 2.3 as part of ticket MRELEASE-420. For example if you are using Maven 3.0.5 then you are by default only using version 2.0 of the maven-release-plugin. Much too old. Fix by adding something like below to your 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>


来源:https://stackoverflow.com/questions/28282572/maven-release-plugin-git-credentials

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!