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. >> >> >>