0

私はツタの初心者です。

  1. 私はパッケージャーリゾルバーを使用しており、そのパッケージャーリゾルバーはzipファイルを解決し、解凍し、そこからjarファイルを一時ビルドファイルに抽出しますが、一時的に残り、モジュール名として指定したjarファイルのみが宛先の残りの部分にコピーされますすべて無視されます。すべてのjarファイルを取得する方法はありますか? 私は preseverBuildDirectories を使用していますが、それを行うためのより良い方法はありますか?

  2. また、通常のアイビーを使用してアーティファクトを svn に公開することは可能ですか? ant 1.8.0 java.illegalArguementException を使用して XP で ivy 2.1.0 を使用しようとしたときに、認証に失敗したというエラーが発生しました。ivy:publish を使用する方法はありますか?

  3. packager.xml で ivy 変数を使用する方法はありますか?

前もってありがとう、アルマス

4

1 に答える 1

2

1) パッケージャーリゾルバー

すべての成果物をリストする再パッケージ化されたモジュールの ivy ファイルを含める必要があります。

Solr ディストリビューションに関連するファイルをダウンロードする例を次に示します。

ivysettings.xml

<ivysettings>
    <settings defaultResolver="maven2"/>

    <caches defaultCacheDir="${user.home}/.ivy2/cache"/>

    <resolvers>
        <ibiblio name="maven2" m2compatible="true"/>

        <packager name="repackage" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache" preserveBuildDirectories="false">
            <ivy pattern="file:///${ivy.settings.dir}/packager/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact pattern="file:///${ivy.settings.dir}/packager/[organisation]/[module]/packager-[revision].xml"/>
        </packager>
    </resolvers>

    <modules>
        <module organisation="org.apache.solr" name="solr" resolver="repackage"/>
    </modules>
</ivysettings>

パッケージャー リゾルバーが ivy ファイルとパッケージャー ファイルの両方へのパスを指定する方法に注意してください。

ivy ファイルは、パブリケーションセクションのパッケージの一部であるアーティファクトを指定します。

パッケージャー/org.apache.solr/solr/ivy-1.4.0.xml

<ivy-module version="2.0">
    <info organisation="org.apache.solr" module="solr" revision="1.4.0"/>
    <configurations>
        <conf name="jars"    description="Jars released with SOLR distribution"/>
        <conf name="webapps" description="Web applications"/>
    </configurations>
    <publications>
        <!-- jars -->
        <artifact name="solr-cell" conf="jars"/>
        <artifact name="solr-clustering" conf="jars"/>
        <artifact name="solr-core" conf="jars"/>
        <artifact name="solr-dataimporthandler" conf="jars"/>
        <artifact name="solr-dataimporthandler-extras" conf="jars"/>

        <!-- webapps -->
        <artifact name="solr" type="war" conf="webapps"/>
    </publications>
</ivy-module>

パッケージャー ファイルには、 solrモジュールの ivy ファイルにリストされている各アーティファクトをコピーするロジックが含まれています。

パッケージャー/org.apache.solr/solr/packager-1.4.0.xml

<packager-module version="1.0">

    <property name="name" value="${ivy.packager.module}"/>
    <property name="version" value="${ivy.packager.revision}"/>

    <resource dest="archive" url="http://ftp.heanet.ie/mirrors/www.apache.org/dist/lucene/solr/1.4.0/apache-solr-1.4.0.tgz" sha1="521d4d7ce536dd16c424a11ae8837b65e6b7bd2d">
        <url href="http://www.apache.org/dist/lucene/solr/1.4.0/apache-solr-1.4.0.tgz"/>
    </resource>

    <build>
        <!-- Jar artifacts -->
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-cell-${version}.jar" tofile="artifacts/jars/${name}-cell.jar"/>
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-clustering-${version}.jar" tofile="artifacts/jars/${name}-clustering.jar"/>
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-core-${version}.jar" tofile="artifacts/jars/${name}-core.jar"/>
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-dataimporthandler-${version}.jar" tofile="artifacts/jars/${name}-dataimporthandler.jar"/>
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-dataimporthandler-extras-${version}.jar" tofile="artifacts/jars/${name}-dataimporthandler-extras.jar"/>

        <!-- War artifacts -->
        <move file="archive/apache-${name}-${version}/dist/apache-${name}-${version}.war" tofile="artifacts/wars/${name}.war"/>
    </build>

</packager-module>

2) Subversion に公開する

自分で使用したことはありませんが、Subversion リゾルバーを構成し、これを使用してアーティファクトを公開する必要があると思います

3) パッケージャーファイルで ivy 変数を使用する

上記のパッケージャー ファイルは、2 つの ivy 変数を使用します。あなたの質問が何であるかわかりません。

更新: サードパーティの jar のサポート

ivy ファイルのパブリケーション セクションには、サード パーティの jar の名前にバージョン番号が含まれています。

アイビーファイル

..
<publications>
    <artifact name="abc-1.0" conf="jars"/>
    <artifact name="pqr-2.0" conf="jars"/>
</publications>
..

パッケージャーファイル

..
<build>
    <move file="archive/apache-${name}-${version}/dist/abc-1.0.jar" tofile="artifacts/jars/abc-1.0.jar"/>
    <move file="archive/apache-${name}-${version}/dist/pqr-2.0.jar" tofile="artifacts/jars/pqr-2.0.jar"/>
</build>
..
于 2010-05-20T21:54:11.990 に答える