Como o Apache Ivy resolver as variáveis ??nos padrões de artefatos fornecidos no arquivo ivysettings.xml?
-
22-08-2019 - |
Pergunta
Se meu arquivo ivysettings.xml inclui:
<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>
E meu arquivo ivy.xml inclui:
<dependency org="org.junit"
name="com.springsource.org.junit"
rev="4.4.0" />
Desde quando eu corri Ivy, posso dizer que este resolve: 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
Assim, as resoluções vão:
[organization] => "org.junit"
[module] => "com.springsource.org.junit"
[revision] => "4.4.0"
[artifact] => "com.springsource.org.junit-sources"
[ext] => "jar"
Eu vejo como hera resolve o [organização], [módulo] e [revisão] no padrão de URL (duh), mas como ele resolver [artefato] e [ext]?
O documentação sobre o URL resolvedor parece ser faltando.
Solução
Ivy primeiro resolve o <ivy pattern... />
, com a organização, módulo, e revisão dada, e com a [artifact]
codificado como "hera" e [ext]
codificado como "xml". Isso resulta de uma URL, neste caso:
Este é o arquivo de configuração de hera para este módulo. Entre outras coisas, este arquivo de configuração hera contém informações sobre outros artefatos, em particular:
<artifact name="com.springsource.org.junit-sources" type="src" ext="jar"/>
<artifact name="license" type="license" ext="txt"/>
Estes dois são então utilizados para completar a parte <artifact pattern... />
-. Baixar a licença e fazer o download do arquivo jar