<ivy-module version="2.0">
<info organisation="com.travelclick" module="CoreWebServices" revision="4.1"/>
<configurations defaultconfmapping="default">
<conf name="runtime" visibility="public"/>
<conf name="default" visibility="public" extends="runtime"/>
</configurations>
<dependencies>
<dependency org="com.travelclick"
name="commons-all"
rev="4.1"
conf="default->default"/>
<dependency org="com.sun.messaging.mq"
name="jms"
rev="4.5.2"
conf="default->default"/>
<dependency org="org.jboss.common"
name="servlet-api"
rev="4.2"
conf="default->default"/>
<dependency org="com.fiorano"
name="framework"
rev="2.0"
conf="default->default"/>
<dependency org="com.fiorano"
name="fmq-client"
rev="9.3.0"
conf="default->default"/>
<dependency org="commons-codec"
name="commons-codec"
rev="1.3"
conf="default->default"/>
<dependency org="commons-httpclient"
name="commons-httpclient"
rev="3.1"
conf="default->default"/>
<dependency org="commons-lang"
name="commons-lang"
rev="2.2"
conf="default->default"/>
<dependency org="commons-pool"
name="commons-pool"
rev="1.4"
conf="default->default"/>
</dependencies>
</ivy-module>
请注意,所有依赖项都配置为default->default
.
在我的build.xml
中,我有以下陈述:
<ivy:resolve conf="default"/>
<ivy:cachepath pathid="all.libs" conf="default"/>
注意我使用的是默认配置。
我使用all.libs
路径将库下载到我正在构建的战争中。
我在战争中得到了以下库,这就是我想要的:
commons-all-4.1.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-lang-2.2.jar
commons-logging-1.0.4.jar
commons-pool-1.4.jar
fmq-client-9.3.0.jar
framework-2.0.jar
jms-4.5.2.jar
servlet-api-4.2.jar
现在,我将删除配置信息。这ivy.xml
与删除的<configurations>
部分和所有conf=default->default
删除的部分相同:
<ivy-module version="2.0">
<info organisation="com.travelclick" module="CoreWebServices" revision="4.1"/>
<dependencies>
<dependency org="com.travelclick"
name="commons-all"
rev="4.1"/>
<dependency org="com.sun.messaging.mq"
name="jms"
rev="4.5.2"/>
<dependency org="org.jboss.common"
name="servlet-api"
rev="4.2"/>
<dependency org="com.fiorano"
name="framework"
rev="2.0"/>
<dependency org="com.fiorano"
name="fmq-client"
rev="9.3.0"/>
<dependency org="commons-codec"
name="commons-codec"
rev="1.3"/>
<dependency org="commons-httpclient"
name="commons-httpclient"
rev="3.1"/>
<dependency org="commons-lang"
name="commons-lang"
rev="2.2"/>
<dependency org="commons-pool"
name="commons-pool"
rev="1.4"/>
</dependencies>
</ivy-module>
当然,我还必须更改 bybuild.xml
以删除对默认配置的引用:
<ivy:resolve/>
<ivy:cachepath pathid="all.libs"/>
但是,现在看看包含的内容:
commons-all-4.1.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-lang-2.2.jar
commons-logging-1.0.4.jar
commons-pool-1.4.jar
fmq-client-9.3.0.jar
framework-2.0.jar
jms-4.5.2.jar
servlet-api-4.2.jar
commons-httpclient-3.1-sources.jar
commons-codec-1.3-javadoc.jar
commons-codec-1.3-sources.jar
commons-lang-2.2-javadoc.jar
commons-lang-2.2-sources.jar
commons-pool-1.4-sources.jar
为什么,当我将所有内容设置为default时,只下载了实际的 jars 而不是 source 和 javadoc jars。然而,当我删除所有配置时,javadoc 和源jar也下载了。
其实Maven仓库中各种jar的配置存放在哪里呢?我可以在 Maven 存储库中看到 javadoc 和源代码,但我没有看到任何关于各种配置的信息。Ivy 如何知道是否包含源代码和javadoc jar?