web-dev-qa-db-ja.com

共有jenkinsサーバーでmaven settings.xmlを管理する方法は?

ビルドジョブを構成できる複数のチームで共有されるJenkinsクラスターがありますが、Jenkinsの構成自体を簡単に変更することはできません。

中央の "nexus pro" Mavenリポジトリマネージャーがありますが、この非常に大規模な多国籍企業の各チーム/グループには独自のリポジトリがあり、リポジトリに公開するにはユーザー名とパスワードの組み合わせが必要です。

つまり、Jenkinsクラスターの他のユーザーのMaven構成を台無しにすることなく、作業しているチームに固有のmaven settings.xmlを使用してJenkinsサーバーを構成する必要があります。

Gitはソース管理リポジトリです。

  1. 共有Jenkinsクラスターで、ビルドジョブのグループまたは単一のジョブに固有のmaven settings.xmlを構成するにはどうすればよいですか?このような状況に対処するためのベストプラクティスは何ですか?
15
ams

構成ファイルプラグイン を使用することをお勧めします。1つ以上のMaven設定ファイルを編集するUIを提供します。

これらの設定ファイルは、「-s」オプションを使用してMavenビルドに渡すことができます。

19
Mark O'Connor

Maven詳細オプションパーツの各ジョブに特定のsettings.xmlパスを指定できます

2
yodamad

Puppet を使用して、すべてのビルドノードを管理します。これは、単なるsettings.xmlよりも優れた制御を提供します。強くお勧めします

Puppetは、システム管理者がプロビジョニングと構成からパッチ管理とコンプライアンスまで、ライフサイクル全体を通してインフラストラクチャを管理するのを支援するIT自動化ソフトウェアです。 Puppetを使用すると、反復タスクを簡単に自動化し、重要なアプリケーションを迅速に展開し、変更をプロアクティブに管理できます。数十台のサーバーから数千台のオンプレミスまたはクラウドへのスケーリングが可能です。

2
Hilikus

会社でNexus Proを使用している場合(既に述べたように)、独自のMaven settings.xmlをそこに保存し、ビルド時にnexus-maven-pluginを使用して取得できます。ここで説明します。 http: //books.sonatype.com/nexus-book/reference/maven-settings.html

トークンベースのアクセスと組み合わせて(ここでもNexus Proがこれを行います)、settings.xmlにパスワードを安全に保存する必要はありません( https://books.sonatype.com/nexus-book/reference/を参照) usertoken.html

1
RCross

特定の構成でMavenエグゼキューターのプロビジョニングを自動化する良い方法は、 ElasticBox Jenkinsプラグイン を使用することです。

Mavenスレーブ用のボックスを作成するだけで、Mavenスレーブが使用するすべてのカスタマイズ変数とファイルを定義し、デプロイするクラウドプロバイダーを選択できます。

ElasticBox は、必要な場合にのみ新しいスレーブを作成し、指定された保持時間後にそれらを自動的に破棄する柔軟性も提供します。

JenkinsをElasticBoxに接続する方法は次のとおりです。

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-setup/#jenkins-configure-plugin

ElasticBoxでJenkinsスレーブの作成を自動化する方法は次のとおりです。

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-slaves/

ElasticBox Jenkinsプラグインを使用して、GitHubプルリクエストからどれだけ簡単にビルドおよびデプロイできるかについてのブログ投稿があります。

https://elasticbox.com/blog/github-pull-requests-jenkinsplugin/

0
Diego Sanjuan