Comment Ivy Apache résout les variables dans les modèles d'artefact fournis dans le fichier ivysettings.xml?
-
22-08-2019 - |
Question
Si mon fichier ivysettings.xml comprend:
<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" />
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 / 4.4.0.jar-com.springsource.org.junit-sources
Ainsi, 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 le lierre résout le [organisation], [module] et [révision] dans le modèle d'URL (duh), mais comment faut-il résoudre [artéfact] et [ext]?
Le documentation sur le résolveur URL semble être défaut.
La solution
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:
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, en particulier:
<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 partie <artifact pattern... />
-. Pour télécharger la licence et télécharger le fichier jar