3

如果我的 ivysettings.xml 文件包括:

<url name="com.springsource.repository.bundles.external">
    <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>

我的 ivy.xml 文件包括:

<dependency org="org.junit"
            name="com.springsource.org.junit" 
            rev="4.4.0" />

从我运行 Ivy 开始,我可以看出这可以解析为:http://repository.springsource.com/ivy/bundles/external/org.junit/com.springsource.org.junit/4.4.0/com.springsource。 org.junit-sources-4.4.0.jar

所以决议去:

[organization] => "org.junit"
[module] => "com.springsource.org.junit"
[revision] => "4.4.0"
[artifact] => "com.springsource.org.junit-sources"
[ext] => "jar"

我看到 ivy 如何解析 URL 模式中的 [organisation]、[module] 和 [revision](duh),但它如何解析 [artifact] 和 [ext]?

似乎缺少有关 URL 解析器的文档。

4

1 回答 1

6

Ivy 首先解析<ivy pattern... />, 并给出组织、模块和修订版本,[artifact]硬编码为“ivy”,[ext]硬编码为“xml”。这会产生一个 URL,在这种情况下:

http://repository.springsource.com/ivy/bundles/external/org.junit/com.springsource.org.junit/4.4.0/ivy -4.4.0xml

这是这个模块的常春藤配置文件。除其他外,此 ivy 配置文件包含有关其他工件的信息,特别是:

<artifact name="com.springsource.org.junit-sources" type="src" ext="jar"/>
<artifact name="license" type="license" ext="txt"/>

然后使用这两个来完成<artifact pattern... />部分 - 下载许可证和下载 jar 文件。

于 2009-03-27T06:08:25.870 回答