2

与えられた:

<dependency org="foo" name="bar" />

アリのスニペットに従って、構成はありません。

<echo>${ivy.configuration}</echo>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom">
  <mapping conf="default" scope="compile" />
</ivy:makepom>

オプションで foo.bar に依存する pom を生成し、「default」を出力します。マッピングを変更するconf="*"と機能しますしかし、それは明らかに準最適です.

指定されていないデフォルト構成をマップすることは可能ですか、それとも ivy.xml のすべての依存関係に conf="default" を設定する必要がありますか?

4

2 に答える 2

3

オプションの依存関係マッピングは、デフォルトの動作のようです。

Ivy は固定数のスコープに制限されていません。アイビー構成ははるかに柔軟ですが、各構成が標準プロジェクトのクラスパスを設定するために使用されていると想定することはできません....

最も安全な方法は、各アイビー構成を Maven の一致するスコープに明示的にマッピングすることです。実際には、各 Maven スコープをエミュレートするためにアイビー構成を作成することをお勧めします (それが使用されているかどうかに関係なく)。

   <target name="generate-pom" depends="resolve" description="Generate Maven POM">
      <ivy:deliver deliverpattern="${build.dir}/ivy.xml" pubrevision="${project.version}"/>

      <ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom">
         <mapping conf="compile" scope="compile" />
         <mapping conf="runtime" scope="runtime" />
         <mapping conf="test"    scope="test" />
      </ivy:makepom>
   </target>

ノート:

  • ツタの配達タスクを省略しました。ivy 動的リビジョンが解決され、ivy モジュールのリビジョン タグが予想される公開済みリビジョン番号に設定されていることを確認するために必要です。(Maven とは異なり、モジュールのバージョンをインクリメントするために ivy ファイルを編集する必要はありません)。
于 2013-07-16T18:39:58.043 に答える
0

「*」のマッピングは無害のようです。その他の特定のマッピングは引き続き優先されます。

于 2013-07-16T13:10:11.450 に答える