6

私のantビルドIDの最後に、コマンドライン呼び出しと同等のものを呼び出します。

mvn install:install-file -Dfile=my.jar -DgroupId=com.company.project -DartifactId=my_project -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true

新しく構築されたjarを、別のプロジェクトが依存するMavenリポジトリに追加するようにします。

私はmaven-ant-taskを使用してみましたが、maven-ant-task jarをantビルドプロジェクトに追加し、次のコードをbuild.xmlに追加しました。

<target name ="minstall" depends="jar">
  <artifact:pom id="maven_install" file="maven_install.xml" />
  <artifact:install file="${out.dir}/my_project.jar">
      <pom refid="maven_install"/>
  </artifact:install> 
</target>

しかし、それは私にはうまくいかないので、何かが欠けているようです。まず、build.xml(antビルドファイル)に次のようなエラーが表示されます

要素「artifact:pom」のプレフィックス「artifact」はバインドされていません。

私は何を間違っているのですか。私はアリにかなり慣れていませんか?

実際の質問では、関連するPOMファイルの目的は何ですか?このプロジェクトはAntビルドであるため、通常はPOMを使用しません。

4

4 に答える 4

3

おそらく、 maven-ant-taskjarがインストールされていません。つまり、antにインストールされCLASSPATHていません。これについては、この指示に従うことができます。

于 2011-01-11T11:11:58.800 に答える
3

前述のように、Ant スクリプトでタスクが定義されていること、およびアーティファクトの名前空間が理解されていることを確認する必要があります。

POM ファイルは (この場合) リポジトリに入れる JAR の依存関係を Maven リポジトリに伝えるために使用されます。POM は、JAR の識別情報 (groupId、artifactId、バージョン番号、ライセンスなど) も指定する必要があります。

厳密に言えば、外部 POM は必要ありません。build.xml ファイルで次のように情報を定義できます。

<!-- Assuming tasks defined, and 'artifact' namespace exists -->
<artifact:pom id="maven_install" groupId="com.whatever" artifactId="some-jar"
              version="1.0" packaging="jar">
    <dependency groupId="..." artifactId="..." version="..."/>
    <dependency groupId="..." artifactId="..." version="..."/>
    <license name="apache" url="http://www.apache.org"/> <!-- can be omitted -->
</artifact:pom>

<target name ="minstall" depends="jar">
    <artifact:install file="${out.dir}/my_project.jar" pomRefId="maven_install"/>
</target>

「minstall」タスクで JAR をインストールすると、ローカル リポジトリに適切な依存関係を持つ POM が生成されます。

于 2011-02-03T09:20:06.060 に答える
1

このメッセージは、.xmlns:artifact 属性が見つからないことを意味しますbuild.xml。例として、ドキュメントのインストール ページをご覧ください。

POM ファイルの目的に関しては、maven が依存関係を適切に把握できるように、ほとんどがメタデータです。実際の Maven ビルドでは、ビルド、テスト、およびパッケージ化の方法についても説明します。しかし、あなたの場合、代わりにantによってすべてが行われます。

于 2011-01-11T20:40:08.093 に答える
-2

そんなコマンドをAntのbuild.xmlに入れても意味がないと思います。jar ファイルを Maven リポジトリにインストールする場合は、mvn installコマンドを使用するだけです。

それに加えて、プロジェクト内の Maven ツールと Ant ツールの目的を何らかの形で混乱させていると思います。私がお勧めするのは、メインのビルド ツールとして Maven を使用することです。本当に必要な場合は、POM ファイルで Ant ターゲットの呼び出しを構成できます。個人的には、Maven から Ant を呼び出すのが最善の解決策だと思います。Maven の目標 (クリーン、テスト、パッケージ、インストールなど) は非常に使いやすく、強力です (すべての Maven チュートリアルで読むことができると思います)。

于 2011-01-11T10:51:06.860 に答える