0

すべての IVY 構成と依存関係を定義したプロジェクトに version.xml があります。ANT スクリプトを使用してアーティファクトをダウンロードおよび取得していますが、これまでのところすべて問題ありません。

私が探しているのは、とにかく特定の構成が version.xml に存在するかどうかを見つけることができ、ANT スクリプトからそれを使用するようにいくつかの依存関係が構成されているかどうかです。単にスキップします。たとえば、私の version.xml は次のようになります。

<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
    <info organisation="TEMENOS" branch="MAIN" module="StateEngine" />
    <!-- "war->compile(*)" this means the 'war' configuration depends on the
    'compile' configuration of the dependency and if the dependency is not
    found in 'compile' then use the 'default' (same as '*') config (usually that is all dependencies) -->
    <configurations defaultconfmapping="test->test(*);compile->compile(*);componentDep->componentDep(*)">
        <conf name="test" description="Test Time dependencies"/>
        <conf name="compile" description="Build Time dependencies"/>
       <conf name="componentDep" description="To resolve component level dependencies" />
    </configurations>
    <publications>
        <artifact name="#SERVICE_NAME#" type="" ext="zip" />
        <artifact name="#SERVICE_NAME#" type="" ext="zip" e:platform="#PLATFORM_WIN#" />
        <artifact name="#SERVICE_NAME#" type="" ext="zip" e:platform="#PLATFORM_UNIX#" />
    </publications>
    <dependencies>
        ....
        <!-- Define Component Level Dependencies Below -->
        <dependency org="TEMENOS" branch="MAIN" name="StateMachine" transitive="false" rev="latest-dev" conf="componentDep" >
            <artifact name="StateMachineService" ext="zip" e:platform="#PLATFORM_WIN#" type="" conf="componentDep" />
            <artifact name="StateMachineService" ext="zip" e:platform="#PLATFORM_UNIX#" type="" conf="componentDep" />
            <artifact name="StateMachineService" ext="zip" type="" conf="componentDep" /> 
        </dependency>
    </dependencies>
</ivy-module>

それで、'ivy:...' のように 'true' または 'false' を返すことができる ANT 内で利用可能なターゲットはありますか? 余分なことをできるように..それ以外の場合はスキップしてください。これはあまり良い考えではないため、ANT 内で自分でファイルを解析したくありません。

注: ANT 1.8.2 および IVY 2.2.0 を使用しています

私が理にかなっていることを願っています。さらに情報が必要な場合はお知らせください。

ありがとう、

--

シュネホ

4

1 に答える 1

2

Ivy は通常、 ivy.xmlというファイルを使用して解決します.....

あなたのversion.xmlファイルは置き換えられるように設計されていると思いますか? ビルドが実行時に ivy ファイルを生成している可能性がありますか?

疑惑の理由

ivy によって発行されたファイルの名前は有効ではないようです.... #SERVICE_NAME#.zipという名前の 3 つのファイルを作成しているとは思えません

<publications>
    <artifact name="#SERVICE_NAME#" type="" ext="zip" />
    <artifact name="#SERVICE_NAME#" type="" ext="zip" e:platform="#PLATFORM_WIN#" />
    <artifact name="#SERVICE_NAME#" type="" ext="zip" e:platform="#PLATFORM_UNIX#" />
</publications>

ビルドのどこかで、フィルター処理されたコピーが行われていると思います.....

元の質問に対する可能な答え

アイビー解決レポートをお探しですか?これにより、プロジェクトの各構成に関連付けられたファイルの HTML レポートが作成されます。次のように使用します。

<target name="init">
    <ivy:resolve/>

    <ivy:report todir='${ivy.reports.dir}' graph='false' xml='false'/>

     ..
</target>
于 2012-06-15T15:35:06.660 に答える