You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Alan Snyder <gu...@cbfiddle.com> on 2024/02/29 02:00:30 UTC

problem resolving LATEST dependency in the local repo

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.



Re: problem resolving LATEST dependency in the local repo

Posted by Greg Chabala <gr...@gmail.com>.
> I recommend using a bot like Dependabot or Renovate to keep dependencies
up-to-date.

This seems a strange recommendation for an Ant user.

Re: problem resolving LATEST dependency in the local repo

Posted by Nils Breunese <ni...@breun.nl>.
I recommend using a bot like Dependabot or Renovate to keep dependencies up-to-date.

Nils.

> Op 29 feb 2024, om 16:05 heeft Tamás Cservenák <ta...@cservenak.net> het volgende geschreven:
> 
> Correct!
> It says "Maven 3.x no longer supports usage of these metaversions in the
> POM"
> 
> T
> 
> On Thu, Feb 29, 2024 at 4:04 PM Alan Snyder <gu...@cbfiddle.com>
> wrote:
> 
>> 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 <gu...@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.
>>>> 
>>>> 
>>>> 
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: problem resolving LATEST dependency in the local repo

Posted by Tamás Cservenák <ta...@cservenak.net>.
Correct!
It says "Maven 3.x no longer supports usage of these metaversions in the
POM"

T

On Thu, Feb 29, 2024 at 4:04 PM Alan Snyder <gu...@cbfiddle.com>
wrote:

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

Re: problem resolving LATEST dependency in the local repo

Posted by Alan Snyder <gu...@cbfiddle.com>.
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 <gu...@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.
>> 
>> 
>> 


Re: problem resolving LATEST dependency in the local repo

Posted by Tamás Cservenák <ta...@cservenak.net>.
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 <gu...@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.
>
>
>