Я искал целую вечность, пытаясь найти решение моей проблемы, но все другие посты, которые мне попадались, либо не работали, либо не соответствовали моей ситуации, так что, надеюсь, кто-то может дать мне некоторое представление.
У меня есть библиотека, которую я создал с помощью ant, которая выводит 2 файла jar, один из которых обычно содержит скомпилированную версию библиотеки, а другой содержит только исходные файлы.
Эта библиотека загружена в наш репозиторий Nexus с пакетом jar. Для фактического файла jar я устанавливаю расширение jar и оставляю классификатор пустым. Для исходной банки я установил классификатор на источники и расширение на банку.
Что бы я ни делал с файлом ivy.xml, я не могу заставить его загрузить jar исходников. Основываясь на сообщениях, которые я читал в другом месте, я попытался добавить:
conf="*->default,sources"
в свою зависимость, но затем я получаю сообщение об ошибке:
configuration not found in org#name;version: 'sources'
То есть это в основном ожидает, что моя библиотека где-то определит источники как конфигурацию? Я думал, что он просто уловит тот факт, что в репозитории есть еще один артефакт с классификатором, установленным на источники.
Может ли кто-нибудь дать мне другие предложения о том, что я могу делать неправильно, либо с тем, как я опубликовал свою библиотеку в Nexus, либо с тем, как я настроил объявление о зависимости в моем файле Ivy.
Это основной файл Ivy.xml, в котором я определяю свою зависимость от библиотеки, которую я поместил в Nexus.
<ivy-module version="2.0">
<info organisation="${ivy.organisation}" module="moduleName" />
<configurations>
<conf name="pda" description="moduleName for PDA"/>
<conf name="server" description="moduleName for server"/>
</configurations>
<dependencies>
<!-- Internal -->
<dependency name="utility" org="${ivy.organisation}" rev="latest.integration" conf="${ivy.configuration}"/>
<dependency name="myLib" org="my.org" rev="0.0.+"/>
</dependencies>
</ivy-module>
В ответ на комментарии ниже для свойства ivy.configuration установлено значение pda в моем файле build.properties для Ant. Для Eclipse я создал файл свойств, а также установил для ivy.configuration значение pda (на этот файл свойств затем ссылаются в настройках Ivy в Eclipse).
Сообщение об ошибке, которое я получаю:
Some projects fail to be resolved
Impossible to resolve dependencies of ${ivy.organisation}#moduleName;working@host
unresolved dependency: my.org#myLib;0.0.+: configuration not found in my.org#myLib;0.0.0: 'sources'. It was required from ${ivy.organisation}#moduleName;working@host pda
ОБНОВЛЕНИЕ Вот разрешенный файл ivy.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<info organisation="my.org"
module="myLib"
revision="0.0.0"
status="release"
publication="20120419131909"
default="true"
/>
<configurations>
<conf name="default" visibility="public"/>
</configurations>
<publications>
<artifact name="myLib" type="jar" ext="jar" conf="default"/>
</publications>
</ivy-module>
Это, очевидно, объясняет, почему ему не удается найти 'sources' conf. Но у меня сложилось впечатление, что конфиг источников должен добавляться автоматически, потому что я добавил исходники в Nexus.