web-dev-qa-db-ja.com

Jenkins:NexusからアーティファクトをチェックアウトしてTomcatにデプロイする方法-

私はJenkins Pipelineをセットアップすることに同意しています。最初の段階が完了し、コードがコンパイル、テスト、検査され、Nexusに展開されます。

戦争がネクサスからチェックアウトされ、Tomcatに展開されるパイプラインの第2ステージを作成したいと思います。

実際、私はTomcatにデプロイするためにmaven-Tomcatプラグインをすでに統合しています。私の質問は、戦争の最新ビルドをどのようにチェックアウトできるかです。

そのためのmavenまたはjenkinsプラグインはありますか?

どうもありがとう、

パトリック

19
user1003331

バイナリリポジトリマネージャー(Nexus)は、アーキテクチャ全体で次の位置を占めることが理想的です。

enter image description here

Jenkinsをプロビジョニングツールとして使用できますが、Nexusから直接アーティファクトをデプロイする何らかのプロセスを起動するのが理想的です(他に何もない場合は、より効率的です)。

これは思ったよりずっと簡単です。たとえば、Nexus REST APIをシェルスクリプトから呼び出して、アーティファクトの必要なリビジョンをダウンロードできます。次に例を示します。

$CATALINA_HOME/bin/shutdown.sh
curl -o $CATALINA_HOME/webapps/myfile.war http://myrepo.com/service/local/artifact/maven/redirect?r=releases&g=com.myorg&a=myfile&v=1.1.1&e=war
$CATALINA_HOME/bin/startup.sh

最後に、展開を管理するための専用システムを検討することをお勧めしますか?私が使ってきた興味深い解決策は rundeck で、これには Jenkins のプラグインがあります。私はrundeckが本当に好きです。それは、Jenkinsと共有する特性が単純であるためです。また、Nexusには plugin があり、rundeckは展開に適したアーティファクトのプルダウンリストを提供できます。

18
Mark O'Connor

https://github.com/cescoffier/puppet-nexus/tree/master/files にあるdownload-artifact-from-nexus.shスクリプトを参照してください==

私の場合、curlではなくwgetを使用するように変更しました。どういうわけか、カールは私にはうまくいきませんでした。

2
David I.

curlでも同じ問題が発生するので、パラメータ-Lを追加して解決しました。これにより、curlはリダイレクトに従ってアーティファクトをダウンロードし、wgetはデフォルトでリダイレクトに従います。

0
Yanis Yakuza

このための新しいpomを作成することをお勧めします。そうすれば、ジェンキンスに縛られることはありません。ネクサスからアーティファクトを明示的にチェックアウトする必要はありません(これはMavenスピーチでリポジトリからのダウンロードと呼ばれることに注意してください)。 Tomcat mavenプラグインで別のwarファイルの場所を指定できます。 ドキュメント を参照してください。リポジトリから最新バージョンをダウンロードするには、 この質問への回答を参照してください。

0
SpaceTrucker