私たちはJenkinsを使用しており、認証なしのファイルベースのgitリポジトリから、httpを介した適切な認証でGitBlitを使用するように切り替えました。
問題は-mavenがバッチモードで自分自身を認証する方法?
-Dusername
と-Dpassword
を使用して各ジョブを更新する(つまり、ジョブにパスワードを保存する)ことは、あまり現実的ではないようです。 settings.xmlはgitサーバーをIDとして指定することでgitで動作するはずですが、私が何を行っても効果がない(つまり、リリースプラグインが資格情報を要求する)ことを読みました。
<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>
<servers>
<server>
<id>git</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
これを機能させる方法はありますか?これには簡単な標準的な解決策がないので、タスクが単純で非常に一般的であるとは信じられません。
docs に基づいて、特別なプロパティ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>
ところで: maven-release-plugin の最新バージョンを使用しているかどうかを確認してください。 project.scm.idの機能拡張は、バージョン2.3で 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>