maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason van Zyl (JIRA)" <>
Subject [jira] Closed: (MNG-2793) Snapshot plugins cannot be resolved correctly with java6
Date Sun, 11 Mar 2007 01:28:13 GMT


Jason van Zyl closed MNG-2793.

    Resolution: Fixed

> Snapshot plugins cannot be resolved correctly with java6
> --------------------------------------------------------
>                 Key: MNG-2793
>                 URL:
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Artifacts and Repositories, Dependencies
>    Affects Versions: 2.0.4, 2.0.5
>            Reporter: Daniel Kulp
>         Assigned To: Jason van Zyl
>            Priority: Critical
>             Fix For: 2.0.6
>         Attachments: maven-artifact-manager.patch
> With java 6, builds that use snapshot repositories are consistently failing if the snapshots
are not available in the local repository.  The error is something like:
> [INFO] ----------------------------------------------------------------------------
> [DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins::1 for project:
null:maven-site-plugin:maven-plugin:2.0-beta-5 from the repository.
> [DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent::1 for project: org.apache.maven.plugins:maven-plugins:pom:1
from the repository.
> [DEBUG] Retrieving parent-POM: org.apache:apache::1 for project: org.apache.maven:maven-parent:pom:1
from the repository.
> [DEBUG] maven-install-plugin: using locally installed snapshot
> [DEBUG] maven-install-plugin: resolved to version 2.2-SNAPSHOT from repository central
> [DEBUG] Skipping disabled repository central
> [INFO] ------------------------------------------------------------------------
> [INFO] ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: org.apache.maven.plugins:maven-install-plugin
> Reason: Error getting POM for 'org.apache.maven.plugins:maven-install-plugin' from the
repository: Failed to resolve artifact, possibly due to a repository list that is not appropriately
equipped for this artifact's metadata.
>   org.apache.maven.plugins:maven-install-plugin:pom:2.2-SNAPSHOT
> from the specified remote repositories:
>   apache.snapshots (,
>   central (
> If the artifacts are first downloaded by building with JDK 1.5, everything works fine.
> After investigating, the problem is in the transforms that the maven-artifact-manager.
  With JDK 1.5, the order they run is:
> org.apache.maven.artifact.transform.LatestArtifactTransformation
> org.apache.maven.artifact.transform.ReleaseArtifactTransformation
> org.apache.maven.artifact.transform.SnapshotTransformation
> but with Java 6, for some reason, the order is:
> org.apache.maven.artifact.transform.SnapshotTransformation
> org.apache.maven.artifact.transform.LatestArtifactTransformation
> org.apache.maven.artifact.transform.ReleaseArtifactTransformation
> The LatestArtifactTransform is what uses to the metadata to determine 
> the "actual" version number (for the install plugin, 2.2-SNAPSHOT).  The 
> SnapshotTransform then converts that to 2.2-20061118.060401-2 which is what 
> is then downloaded.   However, in the java 6 case, the SnapshotTransform is 
> run first and since the version is not a "SNAPSHOT" version number, it 
> doesn't do any processing so then the downloading ends up looking for 
> 2.2-SNAPSHOT, not the full version, which then fails.
> I chatted with brett_ on IRC about this:
> [09:46:35] <dkulp> OK.  I'm trying to track down why  my builds are failing with
JDK 1.6
> [09:46:53] <dkulp> The issue is the transforms are in a different order with 1.6
than 1.5
> [09:47:17] <brett_> yikes
> [09:47:42] <dkulp> With 1.5, its Latest/Release/Snapshot.
> [09:47:46] <brett_> not sure why that would matter. But I guess sorting the transforms
consistently would help.
> [09:47:50] <dkulp> With 1.6, it's Snapshot/Latest/Release
> [09:48:06] <brett_> ok, fairly simple to fix in Maven.
> [09:48:10] <dkulp> The Latest needs to be before Snapshot.
> [09:49:08] <dkulp> I tried changing the order of things in the components.xml.
  Didn't seem to change anything.   But this is plexus stuff which I don't know anything about.
> [09:49:22] <brett_> hmm, it should be populated as a list
> [09:49:28] <brett_> but maybe the list is backed by a map
> [09:49:35] <dkulp> Yep.   Verified it's and ArrayList
> [09:49:51] <brett_> s/backed/populated by/
> [09:50:48] <dkulp> That would definitely do it.
> [09:51:21] <dkulp> Any hints on where to look?
> [09:51:48] <brett_> oh, I would go into plexus
> [09:51:52] <dkulp> (or how to debug)?
> [09:51:58] <brett_> sorry, wouldn't
> [09:52:13] <brett_> it's changing too much
> [09:52:18] <brett_> 2.0.5 will be stuck with alpha-10
> [09:52:24] <brett_> so, need to work around it in Maven
> [09:53:00] <brett_> perhaps just hack the order in the code, and then fix plexus
to honour the order in components.xml in trunk
> [09:54:57] <dkulp> Hmm..    ok.    Is there something plexus will call after setting
the List field so I can resort it?
> [09:55:30] <dkulp> Or will adding a "setArtifactTransformations(List)" work?
> [09:55:40] <dkulp> (again, not familiar with plexus)
> [09:56:25] <brett_> no, it sets it using private field injection
> [09:57:04] <dkulp> No  optional "init" methods or anything that are called after
everything is done?
> [09:57:42] <brett_> you can implement Initializable and modify them then
> [09:57:50] <brett_> but you could just as easily do that inside the method using
> [09:58:08] <dkulp> There are 4 methods using it that are called to resolve every
> [09:58:24] <dkulp> Sorry, 3.
> [09:58:37] <dkulp> Kind of just wanted to sort once, not for each artifact.
> [09:58:46] <brett_> but the transformations should just exist in one class, and
only used in one place, IIRC
> [10:06:46] <dkulp> brett_: thanks.   That actually works.
> The attached patch forces the "Snapshot" transform to the end of the list.   It's definitely
not ideal.   Ideally, plexus would be fixed to honor ordering, but if plexus is in a state
of flux, that might not be doable.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message