web-dev-qa-db-ja.com

CLIゴールの代わりにpomまたはsettings.xmlにmvn deploy:deploy-fileを含めることはできますか

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ファイルに含める方法はありますか?プラグインか何かとして?

13
user171943

承知しました。値で構成された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です。

14
Tunaki

個人的には、POMで宣言することは良いアプローチだとは思いません。たとえば、親POM /スーパーPOMから継承する子POMで構成されるマルチモジュールMavenプロジェクトがあり、アップロードするカスタムjarが子モジュールの1つだけに含まれている場合、親で構成を明示的に宣言する必要がありますPOM(通常mvn deployはスーパーポムの実行に使用されるため)および他のすべての子POMを宣言して、構成の実行をスキップし、POM構造を混乱させます。

deploy:deploy-file目標はビルドライフサイクルの最後にあるため、スクリプトを記述し、deploy目標の実行構成にリンクすることをお勧めします。

0
atjua

Artifactoryマニュアルの Working with Maven セクションでは、このトピックについて詳しく説明します。具体的には deploying artifacts に関する部分です。
さらに、 ArtifactoryをMavenリポジトリとして設定 に関するスクリーンキャストを見ることができます。

Artifactoryを介してビルドアーティファクトをデプロイするには、アーティファクトをデプロイするターゲットローカルリポジトリのURLで distributionManagement 要素をプロジェクトpomファイルに追加する必要があります。さらに、settings.xmlファイルのArtifactoryサーバー資格情報を configure する必要があります。
Artifactoryは、distributionManagementスニペットとsettings.xmlの両方を生成するのに役立ちます(上記で提供したリンクの詳細を参照してください)。

0

カスタムmaven settings.xml をTeamCityにアップロードできます。ここで、前述のようにdistributionManagementとserverを指定する必要があります このドキュメントページ 。この後、アップロードされた設定を使用するようにMavenビルドステップを変更する場合、このステップで実行された目標のセットにデプロイgialを追加するだけでデプロイが行われます。

0
Oleg Rybak