0

私の Ant スクリプトでは、Maven Ant タスクを使用して、次のようにアーティファクトをローカル リポジトリにインストールしています。

<target name="installProject">
  <artifact:pom id="mypom" file="${user.dir}/pom.xml" />
  <artifact:install file="target/myproject-1.0.jar">
    <pom refid="mypom"/>
  </artifact:install>
</target>

このアプローチで気に入らないのは、インストールする Jar の名前を明示的に定義する必要があることです。target/myproject-1.0.jarしかし、その Jar の名前が変更された場合はどうなりますか? より一般的なアプローチが必要です。Maven Ant タスクに、コマンドラインの同じディレクトリで実行するときに Maven もインストールするすべてのアーティファクトをインストールさせるにはどうすればよいですかmvn clean install(どの Jar をインストールするかを指定する必要はありません)。

(はい、Maven を<exec executable="mvn" ...>で呼び出すこともできますが、これには Maven Ant Tasks を使用する方がクリーンだと思います)

4

1 に答える 1

3

build.xml が何を生成するかは誰にもわからないため、目的のアーティファクト名を ant に渡す必要があります。これは、antrun 要素で使用できるはずの project.groupId、project.artifactId、project.version プロパティを介して実行できます。次に、build.xml が機能した後。attachartifact ant タスクを使用して、アーティファクトを Maven にアタッチできます。IE

<attachartifact file="${project.build.directory}/${project.artifactId}-${project.version}.jar" type="jar"/>

その後、それを実行するときにmaven install、ant アーティファクトをインストールします。

于 2011-06-08T15:13:56.297 に答える