У меня есть артефакт в локальной файловой системе, но Айви не разрешит его, пока я не положу решатель внутри . И он переименовывает расширение артефакта, когда разрешает его.
Вот мой ivy.xml:
<ivy-module version="2.0">
<info organisation="apache" module="hello-ivy"/>
<dependencies>
<dependency org="myorg" name="mymodule" rev="1.1-SNAPSHOT"/>
</dependencies>
</ivy-module>
А вот и мой ivysettings.xml:
<ivysettings>
<settings />
<resolvers>
<filesystem name="local">
<artifact pattern="/path/to/my/artifact/[module]/dist/[module]-[revision].zip" />
</filesystem>
</resolvers>
</ivysettings>
Мой build.xml:
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="deps">
<target name="deps" description="--> retrieve dependencies with ivy">
<ivy:settings file="ivysettings.xml"/>
<ivy:resolve />
<ivy:retrieve />
</target>
</project>
Артефакт представляет собой файл .zip. Он находится в нужном месте и назван правильно (в соответствии с атрибутом pattern . Но когда я запускаю ant, он не может разрешить артефакт:
[ivy:resolve] :::: WARNINGS
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: UNRESOLVED DEPENDENCIES ::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: myorg#mymodule;1.1-SNAPSHOT: no resolver found for myorg#mymodule: check your configuration
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :::: ERRORS
[ivy:resolve] unknown resolver null
[ivy:resolve] no resolver found for myorg#mymodule: check your configuration
Почему он не находит мой модуль?
Тогда: если я помещу элемент внутрь элемента , он разрешается:
[ivy:resolve] found myorg#mymodule;1.1-SNAPSHOT in local
[ivy:resolve] downloading /path/to/my/artifact/mymodule/dist/mymodule-1.1-SNAPSHOT.zip
[ivy:resolve] ..................(lots of dots here).....(37899kB)
[ivy:resolve] [SUCCESSFUL ] myorg#mymodule;1.1-SNAPSHOT!mymodule.jar (430ms)
Так странно. Почему сделал разницу?
И кстати, почему мой модуль теперь JAR ??? Источник - ZIP-файл, клянусь. Это тоже правильный вариант - я просто перестроил ZIP, и последние изменения в моем файле JAR. Почему Айви переименовала его?