I am trying desperately to have this working. I've spent the whole day on it and can't find what's wrong.
It seems that IVY can resolve only the "less stable status" in the statuses list, ie for the default ones, only integration not milestone or release.
This is a test ant file.
<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>
This is the 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>
And this is the 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>
And the moduleB ivy.xml in the repository (folder)
<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>
So this will work, the moduleB will be downloaded all right.
Now if I edit the ivy.xml to get the latest.milestone
<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>
and edit the ivy.xml of my published moduleB (so editing in the repository folder) to be of status milestone
<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>
it won't work, the artifact won't be found, although listed
:: 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)]
Now the FUN PART! Before using the defaults statuses from IVY I used mine. It had the exact same behavior (that's why I tried the defaults one then). The fun bits is that if I had
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-test" integration="false"/>
<status name="status-dev" integration="true" />
</statuses>
The only latest.[status] working will be for status-dev. Now if I change the status order to
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-dev" integration="true" />
<status name="status-test" integration="false"/>
</statuses>
The only one working will be status-test.
I' puzzled here... :/
Thanks for any help you could provide. Cheers, Xavier
I have created a basic project showing the weird behavior.moduleB is the module being published.moduleA is the module getting moduleB as a dependency.
Please update the path to the local repository in both ivysettings file
The link to download the file
https://rapidshare.com/files/1326835940/test_ivy.zip