Я отчаянно пытаюсь заставить это работать. Я потратил на это целый день и не могу найти в чем дело.
Кажется, что IVY может разрешить только "менее стабильный статус" в списке статусов, то есть для значений по умолчанию, только интеграция, а не этап или выпуск.
Это тестовый файл муравья.
<project name="helicopter" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<ivy:settings file="ivysettings.xml" id="ivy.instance"/>
<!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't -->
<ivy:resolve file="ivy.xml" />
<ivy:retrieve type="swc" pattern="../libs/bin/[module]-[revision].[ext]" />
<ivy:retrieve type="src" pattern="../libs/src/[module]-[revision].[ext]" />
</project>
Это ivysettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings defaultResolver="local" />
<resolvers>
<filesystem
name="local"
checkmodified="true">
<artifact pattern="C:/repository/[organisation]/[module]/[revision]/[artifact].[ext]" />
</filesystem>
</resolvers>
</ivysettings>
А это ivy.xml
<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="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.integration">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
И модуль B ivy.xml в репозитории (папке)
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="integration" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
Так что это будет работать, модуль B будет загружен в порядке.
Теперь, если я отредактирую файл ivy.xml, чтобы получить последний.
<info
organisation="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.milestone">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
и отредактируйте файл ivy.xml моего опубликованного модуля B (поэтому редактирование в папке хранилища), чтобы он имел статусную веху
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="milestone" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
не будет работать, артефакт не будет найден, хотя указан в списке
:: problems summary ::
:::: WARNINGS
module not found: com.org#moduleB;latest.milestone
==== local: tried
-- artifact com.org#moduleB;latest.milestone!moduleB.src.zip(src):
C:/repository/com.org/moduleB/revision]/moduleB.src.zip
[0.0.5.0 (MD)]
-- artifact com.org#moduleB;latest.milestone!moduleB.swc:
C:/repository/com.org/moduleB/[revision]/moduleB.swc
[0.0.5.0 (MD)]
Теперь забавная часть!
До использования статусов по умолчанию от IVY я использовал мой.
У него было точно такое же поведение (вот почему я тогда использовал значения по умолчанию).
Самое интересное, что если бы у меня было
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-test" integration="false"/>
<status name="status-dev" integration="true" />
</statuses>
Единственная последняя работа. [Status] будет для status-dev.
Теперь, если я изменю статус заказа на
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-dev" integration="true" />
<status name="status-test" integration="false"/>
</statuses>
Работает только одна проверка состояния.
Я озадачен здесь ...: /
Спасибо за любую помощь, которую вы могли бы оказать.
Ура,
Xavier
Я создал базовый проект, показывающий странное поведение.
moduleB
опубликован модуль.
moduleA
- это модуль, получающий moduleB
в качестве зависимости.
Обновите путь к локальному репозиторию в ivysettings
файле
Ссылка для скачивания файла
https://rapidshare.com/files/1326835940/test_ivy.zip