- Documentation (2.6.0-local-20230820130639)
- Release Notes
- Tutorials
- Reference
- Introduction
- System Properties
- Settings Files
- Ivy Files
- Ant Tasks
- artifactproperty
- artifactreport
- buildlist
- buildnumber
- buildobr
- cachefileset
- cachepath
- checkdepsupdate
- cleancache
- configure
- convertmanifest
- convertpom
- deliver
- dependencytree
- findrevision
- fixdeps
- info
- install
- listmodules
- makepom
- post resolve tasks
- publish
- report
- repreport
- resolve
- resources
- retrieve
- settings
- var
- Using standalone
- OSGi
- Developer doc
latest-strategies
Tag: latest-strategies
Defines a list of latest strategies usable in Ivy. Each latest strategy is identified by its name, given as an attribute.
The child tag used for the latest strategy must be equal to a name of a latest strategy type (usually added with the typedef
tag).
The latest strategies which are included in Ivy by default are:
-
latest-time
compares the revision dates to know which is the latest. While this is often a good strategy in terms of pertinence, its drawback is that it can be slow when dealing with remote repositories. If you use ivyrep, for example, Ivy has to ask the HTTP server for the date of each Ivy file before knowing which is the latest. -
latest-revision
compares the revisions as strings, using an algorithm close to the one used in PHPversion_compare
function. This algorithm takes into account the special meaning of some text. For instance, with this strategy,1.0-dev1
is considered before1.0-alpha1
, which in turn is before1.0-rc1
, which is before1.0
, which is before1.0.1
. -
latest-lexico
compares the revisions as strings using lexicographic order (the one used by Java string comparison).
Child elements
Element | Description | Cardinality |
---|---|---|
any latest strategy |
adds a latest strategy to the list of available strategies |
0..n |
latest-revision
[since 1.4]
The latest-revision can now be configured to handle more words with special meanings than the one defined in PHP version_compare
function.
Here is an example of how you can do so:
<latest-strategies>
<latest-revision name="mylatest-revision">
<specialMeaning name="PRE" value="-2"/>
<specialMeaning name="QA" value="4"/>
<specialMeaning name="PROD" value="5"/>
</latest-revision>
</latest-strategies>
Knowing that the default "special meaning" words are the following:
<specialMeaning name="dev" value="-1"/>
<specialMeaning name="rc" value="1"/>
<specialMeaning name="final" value="2"/>
You can even remove or redefine the default special meanings by setting usedefaultspecialmeanings="false"
on the latest-revision
tag.
Example:
<latest-strategies>
<latest-revision name="mylatest-revision" usedefaultspecialmeanings="false">
<specialMeaning name="pre" value="-2"/>
<specialMeaning name="m" value="1"/>
<specialMeaning name="rc" value="2"/>
<specialMeaning name="prod" value="3"/>
</latest-revision>
</latest-strategies>