2009-03-26 11 views
3

Si mon fichier ivysettings.xml comprend:Comment Apache Ivy résout-il les variables dans les modèles d'artefacts fournis dans le fichier 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> 

Et mon fichier ivy.xml comprend:

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

A partir de quand je courais Ivy, je peux dire que cela résout à: 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

Donc les résolutions vont:

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

Je vois comment ivy résout [l'organisation], [module] et [révision] dans le modèle d'URL (duh), mais comment résout-il [artefact] et [ext]? Le documentation on the URL resolver semble manquer.

Répondre

6

Ivy résout d'abord le <ivy pattern... />, avec l'organisation, le module et la révision donnée, et avec le [artifact] Hardcoded comme "lierre" et [ext] hardcoded comme "xml". Cela donne une URL, dans ce cas:

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

Ceci est le fichier de configuration de lierre pour ce module. Entre autres choses, ce fichier de configuration de lierre contient des informations sur d'autres objets, notamment:

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

Ces deux sont ensuite utilisés pour compléter la <artifact pattern... /> partie - pour télécharger la licence et télécharger le fichier jar.