Maven выпускает плагин git credentials

Мы используем Jenkins и просто переключились с файлового git-репо без аутентификации на использование GitBlit с надлежащей аутентификацией по http.

Проблема в том, что, как предполагается, должна быть аутентифицирована в пакетном режиме?

Обновление каждого задания с помощью -Dusername и -Dpassword (и, следовательно, сохранение пароля в заданиях) не представляется возможным. Я читал, что settings.xml должен работать с git, указав git-сервер как id, но все, что я делаю, не имеет никакого эффекта (т.е. Плагин release запрашивает учетные данные).

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>

Есть ли способ заставить это работать? Я не могу поверить, что задача простая и чрезвычайно обычная, так как это не имеет простого стандартного решения.

Ответы

Ответ 1

На основе документов вы должны использовать специальное свойство, project.scm.id, чтобы определить идентификатор соответствующей записи сервера в файле settings.xml.

<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>

BTW: Проверьте, используете ли вы самую последнюю версию плагина maven-release. Улучшение project.scm.id было введено в версии 2.3 как часть билета MRELEASE-420. Например, если вы используете Maven 3.0.5, вы по умолчанию используете только версию 2.0 плагина maven-release. Очень много. Исправьте, добавив что-то вроде ниже в ваш 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>