In our project, we like to automate most of the dependencies, so we want to use the latest strategies in IVY. However, we do not want to run the bleeding edge of the dependencies, i.e. alpha and beta.
Using:
<dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.revision" />
or
<dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.release" />
We get an audit 4.4-alpha1
This is understandable since we are using the ibiblio resolver, which contains the following xml in maven-metadata.xml
<metadata>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<versioning>
<latest>4.4-alpha1</latest>
<release>4.4-alpha1</release>
<versions>
<version>4.0-alpha1</version>
<!-- snip --->
<version>4.3-alpha1</version>
<version>4.3-beta1</version>
<version>4.3-beta2</version>
<version>4.3</version>
<version>4.3.1</version>
<version>4.3.2</version>
<version>4.3.3</version>
<version>4.3.4</version>
<version>4.3.5</version>
<version>4.4-alpha1</version>
</versions>
<lastUpdated>20140801101402</lastUpdated>
</versioning>
</metadata>
Metadata indicates the alpha version of both the release and the latest. (not sure if this is relevant)
In this case, we have the version that we would like to receive in the metadata list 4.3.5
Ivy now has a construction with and, but the documentation is pretty sparse, and I can't figure out how to make this strategy “ignore” the alpha version.
( rev="latest.test"):
`
:
org.apache.ivy.plugins.latest.LatestRevisionStrategy , , , .
, , .
`