使用常春藤的问题

时间:2010-05-20 17:14:01

标签: ivy

我是常春藤的新人。

  1. 我正在使用打包程序解析程序,该打包程序解析程序解析zip文件,解压缩它,在临时构建文件中从中提取jar文件,但它暂时保留,并且只保留我指定为模块名称的jar文件被复制到目的地的其余部分被忽略。有没有办法可以获得所有的jar文件?我使用preseverBuildDirectories但是有更好的方法吗?

  2. 我是否可以使用普通常春藤向svn发布工件?我在使用ant 1.8.0 java.illegalArguementException尝试在XP上使用ivy 2.1.0时出现错误,说授权失败。有没有办法可以通过常春藤工作:发布?

  3. 我有没有办法在packager.xml中使用常春藤变量?

  4. 提前致谢, 阿尔马斯

1 个答案:

答案 0 :(得分:2)

1)打包机解析器

您需要为重新打包的模块包含一个列出所有工件的常春藤文件。

这是我下载与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文件指定出版物部分中包的一部分的工件。

<强>打包器/ org.apache.solr / solr的/常春藤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>

packager文件包含复制出 solr 模块的常春藤文件中列出的每个工件的逻辑。

<强>打包器/ org.apache.solr / solr的/打包器-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 resolver并使用它来发布你的工件

3)在packager文件中使用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>
..