1

私たちが作成した 2 つの jar に依存するプロジェクトがあります。これら 2 つの jar をリポジトリに配置すると、Ivy がそれらをダウンロードし、最初の jar のコンパイルとビルドですべて問題ありません。

ただし、この jar に対して実行する必要がある難読化ツールである別の jar があります。これもリポジトリにありますが、コンパイルには必要ありません。代わりに、新しく作成した jar に対してプログラムとして実行するだけです。

この難読化 jar の構成をどのように分類すればよいですか? コンパイルには必要ないので、コンパイルとは言えません。また、ランタイム構成にも含めるべきではありません。これで、 provided、 _optional、_master、またはtestが残ります。

ソフトウェアのビルドに必要な Jar の特別な構成を作成できますが、クラスパスでは必要ありませんが、標準を破って基本的な構成以上のものを作成したくありません。

これを処理する最良の方法は何ですか?

4

2 に答える 2

2

ビルドプロセスにのみこのjarが必要な場合は、インライン取得がその役割を果たします。それはあなたがツタのファイルを必要とせずにアーティファクトを取得するのに役立ちます。
これは、実行するがアーティファクト自体(findbugsなど)とは関係のないタスクに必要なjarファイルに非常に役立ちます。

<ivy:retrieve organisation="foo" module="bar" inline="true" pattern="${my.install.dir}/[artifact].[ext]"/>

もう1つの方法は、インラインivyキャッシュパスです。この場合、jarはキャッシュから直接取得され、プロジェクトには取得されません。

<ivy:cachepath
  organisation="org" module="module" 
  revision="latest.integration" 
  inline="true" pathid="project.compile.sourceprocessing.classpath"/>  
于 2012-07-24T19:46:10.973 に答える
2

Ivy 構成は柔軟に設計されています。もちろん、Maven スコープで標準化することは完全に理にかなっていますが (特に Maven リポジトリからプルする場合)、ビルドを制限する理由はありません。特に、ビルドでのみ使用される依存関係についてはそうです。

通常、ANT タスク jar などのアイテムをプルダウンする専用の「ビルド」と呼ばれる追加の構成を作成します。

<configurations>
   <conf name="compile"  description="Compile dependencies"/>
   <conf name="runtime"  description="Runtime dependencies" extends="compile"/>
   <conf name="test"     description="Test dependencies" extends="runtime"/>
   <conf name="provided" description="Dependencies provided by target platform"/>
   <conf name="build"    description="Dependencies used by ANT build process"/>
</configurations>
于 2012-07-24T22:28:46.493 に答える