Javaプロジェクトから生成されたjarと一緒にArtifactoryにカスタムjarをデプロイする必要があります。現在、見つけることができる唯一の方法は、次を使用してコマンドラインの目標を使用することです。
mvn deploy:deploy-file -DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<type-of-packaging> \
-Dfile=<path-to-file> \
-Durl=<url-of-the-repository-to-deploy>
これをpomファイルに含める方法はありますか?プラグインか何かとして?
承知しました。値で構成されたdeploy
フェーズにバインドされた maven-deploy-plugin:deploy-file
ゴールの実行を定義するだけです。プロジェクトをデプロイすると、この実行が呼び出され、JARがデプロイされます。
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<id>deploy-file</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file><!-- path-to-file --></file>
<url><!-- url-of-the-repository-to-deploy --></url>
<groupId><!-- group-id --></groupId>
<artifactId><!-- artifact-id --></artifactId>
<version><!-- version --></version>
<packaging><!-- type-of-packaging --></packaging>
</configuration>
</execution>
</executions>
</plugin>
おそらく repositoryId
も追加する必要があることに注意してください。これは、<id>
の<server>
セクションの下にあるsettings.xml
にマッピングするサーバーIDです。
個人的には、POMで宣言することは良いアプローチだとは思いません。たとえば、親POM /スーパーPOMから継承する子POMで構成されるマルチモジュールMavenプロジェクトがあり、アップロードするカスタムjarが子モジュールの1つだけに含まれている場合、親で構成を明示的に宣言する必要がありますPOM(通常mvn deploy
はスーパーポムの実行に使用されるため)および他のすべての子POMを宣言して、構成の実行をスキップし、POM構造を混乱させます。
deploy:deploy-file
目標はビルドライフサイクルの最後にあるため、スクリプトを記述し、deploy
目標の実行構成にリンクすることをお勧めします。
Artifactoryマニュアルの Working with Maven セクションでは、このトピックについて詳しく説明します。具体的には deploying artifacts に関する部分です。
さらに、 ArtifactoryをMavenリポジトリとして設定 に関するスクリーンキャストを見ることができます。
Artifactoryを介してビルドアーティファクトをデプロイするには、アーティファクトをデプロイするターゲットローカルリポジトリのURLで distributionManagement 要素をプロジェクトpomファイルに追加する必要があります。さらに、settings.xmlファイルのArtifactoryサーバー資格情報を configure する必要があります。
Artifactoryは、distributionManagementスニペットとsettings.xmlの両方を生成するのに役立ちます(上記で提供したリンクの詳細を参照してください)。
カスタムmaven settings.xml をTeamCityにアップロードできます。ここで、前述のようにdistributionManagementとserverを指定する必要があります このドキュメントページ 。この後、アップロードされた設定を使用するようにMavenビルドステップを変更する場合、このステップで実行された目標のセットにデプロイgialを追加するだけでデプロイが行われます。