2009-03-26 4 views
3

Если мой файл ivysettings.xml включает в себя:Как Apache Ivy разрешает переменные в шаблонах артефактов, предоставляемых в файле 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" /> 

С, когда я побежал Айви, я могу сказать, что это решает: 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" 

Я вижу как плющ разрешает [организацию], [модуль] и [ревизию] в шаблоне URL (duh), но как он разрешает [артефакт] и [ext]?

documentation on the URL resolver похоже отсутствует.

ответ

6

Ivy первым решает <ivy pattern... />, с организацией, модуль, и пересмотра данного, и с [artifact] зашиты как "плющ" и [ext] HARDCODED как "XML". Это дает URL, в этом случае:

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

Это файл конфигурации плющ для этого модуля. Помимо всего прочего, этот файл конфигурация плюща содержит информацию о других артефактах, в частности:

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

Эти два затем используются для завершения <artifact pattern... /> части - скачать лицензию и загрузить файл банки.