The Maven 3 compatibility notes page can be read as saying that RELEASE and 
LATEST are deprecated only for finding plugins, although it can also be read as 
a general statement.

Which is the correct interpretation?

I quote:

Given the threat of non-reproducible builds imposed by automatic plugin version 
resolution, this feature is scheduled for removal as far as plugin declarations 
in the POM are concerned.
Internally, Maven 2.x used the special version markers RELEASE and LATEST to 
support automatic plugin version resolution. These metaversions were also 
recognized in the <version> element for a <plugin> declaration. For the sake of 
reproducible builds, Maven 3.x no longer supports usage of these metaversions 
in the POM. As a result, users will need to replace occurrences of these 
metaversions with a concrete version.

Source:  
https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes#Maven3.xCompatibilityNotes-PluginMetaversionResolution

I understand the drawbacks of using LATEST and RELEASE, but there are 
situations where they are useful.

I should have stated explicitly that LATEST is resolved correctly for artifacts 
in Maven Central.



> On Feb 29, 2024, at 12:40 AM, Tamás Cservenák <ta...@cservenak.net> wrote:
> 
> Howdy,
> 
> Yes, the "LATEST" Maven2 version keyword has been phased out in Maven3.
> They make builds non reproducible (just like snapshots): as it is a "moving
> target".
> 
> T
> 
> 
> On Thu, Feb 29, 2024, 03:01 Alan Snyder <gunpolishing...@cbfiddle.com>
> wrote:
> 
>> I have been using the Maven Artifact Resolver Ant Tasks with success,
>> except in one situation:
>> 
>> When the artifact exists only in my local repo (with version 1-SNAPSHOT),
>> a dependency with version LATEST fails to resolve.
>> 
>> An example of the error message:
>> 
>> Could not collect dependencies: Failed to collect dependencies at
>> org.violetlib:nls:jar:LATEST
>> 
>> If I change the dependency to use 1-SNAPSHOT as the version, the resolver
>> succeeds.
>> 
>> Is it intentional that a local repo does not support LATEST?
>> 
>> In case it matters, the artifact was installed in the local repo using mvn
>> install:install-file.
>> 
>> 
>> 

Reply via email to