在常春藤

时间:2015-04-22 18:26:51

标签: ant ivy artifactory

我非常感谢你的帮助。

我们使用ant \ ivy来管理我们的依赖项。 我们希望下载最少量的模块:只需要构建模块。 我尝试使用配置交集,但我没有期待常春藤的行为。

https://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency.html

  

自2.1以来也可以定义配置交集的依赖关系。使用' +'定义配置交集。用于分隔配置的标志(例如,' A + B'表示配置' A' B')的交叉点。在这种情况下,只有依赖关系中两个配置中定义的工件和依赖关系才会成为定义配置交集的依赖关系的主配置的一部分。

     

在指定要解决的confs时也可以使用配置交叉点。

build.xml文件:

<project xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:e="http://ant.apache.org/ivy/extra" name="test" default="get">
    <target name="get" description="-->Downloads all artifacts and prepare it">
        <ivy:resolve file="ivy.xml" conf="${conf}" />
    </target>
</project>

常春藤文件:

<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
    <info module="test" organisation="main" revision="1.0"/>
    <configurations>
        <conf name="release"        e:axis="download_type" />
        <conf name="dev"            e:axis="download_type" />

        <conf name="client"         e:axis="product"/>
        <conf name="server"         e:axis="product"/>
    </configurations>

    <dependencies>
        <dependency org="main" name="zlib" branch="trunk" rev="1.2.8.+" conf="dev->*;client->*"/>
    </dependencies>
</ivy-module>

案例1:

  

ant -Dconf =&#34; dev + server&#34;

案例2:

  

ant -Dconf =&#34; server + dev&#34;

我希望在第一种和第二种情况下结果相同:zlib不应该被下载,因为&#34; Dev&#34;和&#34;服务器&#34; confs什么都不是。 但我明白了:

  • 在案例1中:Zlib未下载
  • 在案例2中:Zlib已下载

我的误解在哪里?

由于

PS。常春藤的版本是2.4.0

0 个答案:

没有答案