代码之家  ›  专栏  ›  技术社区  ›  Wolfgang

将检索到的工件拆分到两个单独的lib目录中

ivy
  •  6
  • Wolfgang  · 技术社区  · 14 年前

    • /lib ,和
    • /web/webroot/WEB-INF/lib .

    二者都 前端和业务逻辑代码。有一个类加载器可以让业务逻辑代码 请参阅/web/webroot/web-INF/lib中的jars。

    我如何告诉ivy某些依赖项应该转到第二个目录,而所有其他依赖项都转到第一个目录?

    这不是trival,因为web类加载器可以在两个目录中看到jar,我不希望jar同时在两个目录中。

    1 回复  |  直到 14 年前
        1
  •  15
  •   Mark O'Connor    14 年前

    配置用于创建依赖项的逻辑分组:

    <ivy-module version="2.0">
        <info organisation="com.myspotontheweb" module="demo"/>
        <configurations>
            <conf name="frontEnd" description="Jars used by front end"/>
            <conf name="businessLogic" description="Jars used for business logic"/>
        </configurations>
        <dependencies>
            <dependency org="commons-lang"    name="commons-lang"    rev="2.5"   conf="businessLogic->default"/>
            <dependency org="commons-codec"   name="commons-codec"   rev="1.4"   conf="businessLogic->default"/>
            <dependency org="commons-cli"     name="commons-cli"     rev="1.2"   conf="frontEnd->default"/>
            <dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="frontEnd->default"/>
        </dependencies>
    </ivy-module>
    

    常春藤 检索

    编译文件

    <target name="init" description="--> retrieve dependencies with ivy">
        <ivy:retrieve conf="businessLogic" pattern="lib/[artifact].[ext]"/>
        <ivy:retrieve conf="frontEnd" pattern="web/webroot/WEB-INF/lib/[artifact].[ext]"/>
    </target>
    

    $ find . -type f
    ./build.xml
    ./ivy.xml
    ./lib/commons-lang.jar
    ./lib/commons-codec.jar
    ./web/webroot/WEB-INF/lib/commons-cli.jar
    ./web/webroot/WEB-INF/lib/commons-logging.jar