Проблемы с использованием ivy: задача публикации
Я пытаюсь использовать ivy: опубликовать опубликовать банку, которую я построил .репозиторий Айви, но я получаю сообщение об ошибке. Я уверен, что не использую его правильно, поэтому я надеялся, что кто-то может указать мне в правильном направлении.
структура проекта примерно такая:
root--|
|--src
|--build
| |
| |--someorganisation-commonlib-1.0.0.jar
|
|--ivy.xml
|--build.xml
сборка.xml выглядит примерно так:
<target name="publish">
<ivy-publish organisation="someorganisation" resolver="local" module="commonlib" revision="1.0.0">
<artifacts pattern="build/[organisation]-[module](-[revision])(-[type]).[ext]" />
</ivy-publish>
</target>
Айви.в XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="someorganisation"
module="commonlib"
status="integration">
</info>
<dependencies>
<dependency org="com.thoughtworks.xstream" name="xstream" rev="1.3.1" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-jdk14" rev="1.6.1" transitive="false"/>
<dependency org="joda-time" name="joda-time" rev="1.6.2" transitive="false"/>
</dependencies>
</ivy-module>
когда я запускаю строить.xml, я получаю следующее ошибка:
C:workspaceswkspcsomeprojectbuild.xml:8: someorganization#commonlib;1.0.0: java.lang.IllegalStateException: ivy file not found in cache for someorganization#commonlib;1.0.0: please resolve dependencies before delivering (C:Documents and Settingssomeuser.ivy2cacheresolved-someorganization-commonlib-1.0.0.xml)
1 ответов
вы забыли a публикации раздел в вашем файле ivy.
<ivy-module version="2.0">
<info organisation="someorganisation" module="commonlib"/>
<publications>
<artifact name="commonlib" type="jar"/>
</publications>
<dependencies>
<dependency org="com.thoughtworks.xstream" name="xstream" rev="1.3.1" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-jdk14" rev="1.6.1" transitive="false"/>
<dependency org="joda-time" name="joda-time" rev="1.6.2" transitive="false"/>
</dependencies>
</ivy-module>
на статус и редакция (pubrevision) поля могут быть указаны с помощью публикации задача следующая:
<ivy:publish resolver="${publish.resolver}" pubrevision="${publish.revision}" status="${publish.status}">
<artifacts pattern="${build.dir}/[organisation]-[artifact].[ext]"/>
</ivy:publish>
Примечание 1:
было бы проще создать файл jar без номера редакции в имени. Просто позволь образцу артефакта Айви забрать файл jar.
Примечание. 2:
на каком-то этапе сборки вам потребуется разрешение ivy, иначе файл ivy не будет обработан.