2

最初のジョブが mvn clean package を呼び出して Java プロジェクトをコンパイルおよびビルドする jenkins build-pipeline があります。アーティファクトはその後、ビルドの品質を保証する一連のテスト ジョブにコピーされます。チェーンの最後のジョブは、アーティファクトを nexus リポジトリにデプロイする必要があります。

私の質問は、最終的なjar myproject-1.2.0-SNAPSHOT.jar とmavenしかない場合に、ファイルをnexusにデプロイする方法です。

私は試した

mvn deploy:deploy-file

しかし、このプラグインは、groupId、アーティファクト ID、バージョンなどに関する情報を取得する必要があります。デプロイ ジョブで知りたくない情報です。jar自体に保存されている情報は、一部のmavenファイルに含まれていませんか? 私はネクサスと言いたいだけです、これはアーティファクトです、それを取ってください。

4

3 に答える 3

2

Maven で構築された jar には、この情報がMETA-INF/maven/ディレクトリに含まれています。の下に完全なpom.xmlファイルがありますMETA-INF/maven/[groupId]/[artifactId]/pom.xml

mvn deploy:deploy-fileしたがって、この情報を抽出して正しい引数で呼び出す小さなプログラムを作成することができます。

残念ながら、ファイルを取得するにはgroupIdとを知っているartifactId必要があるため、簡単に開いて解析することはできません。もちろん、(唯一の) ディレクトリMETA-INF/mavenの名前と、このディレクトリの (唯一の) サブディレクトリの名前を取得できます。ちょっと面倒ですが、うまくいくはずです。

注: 最も重要な情報を含むファイルもあり、pom.propertiesおそらくpom.xml.

于 2012-10-25T11:09:22.707 に答える
0

これは私にはすべて逆に思えます。流れを次のように変更します

  1. 実行 mvn clean deployして、リポジトリ マネージャー (Nexus など) またはローカル リポジトリにデプロイされたライブラリを取得します (複数のビルド ノードがある場合はあまり理想的ではありません)。
  2. テストジョブが依存関係としてリポジトリからアーティファクトを取得できるようにします (またはスクリプト化された wget など)。
  3. あなたはすでに終わっています..
于 2012-10-25T20:06:41.800 に答える
-1

jar ファイルの生成に使用した pom.xml ファイルを使用します。そのファイルをアーティファクトの一部として保持し、手動で展開する必要がある場合はそれを使用できます

于 2012-10-25T11:38:19.787 に答える