[ 
https://jira.codehaus.org/browse/MNG-5324?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Scholte updated MNG-5324:
--------------------------------

    Description: 
Maven can only retrieve an artifact from Nexus with a classifier with latest 
timestamp.
Artifacts with classifiers with an older timestamp cannot be resolved.
For example. If I deploy an artifact Apple with classifier A and a bit later 
deploy the same artifact with classifier B.

Next I want to retrieve the artifacts from Nexus:
For a module Banana, which needs Apple with classifier A the Artifact resolver 
will fail.
For a module Strawberry, which needs Apple with classifier B the Artifact 
resolver will succesfully resolve the artifact.

I found the cause for this behaviour:
With an proxy between Maven and Nexus I could see the behavour of Maven, at the 
moment that I want to fetch an artifact:

First the metadata.xml is fetched from Nexus. This file does contain the 
timestamp of the latest artifact in nexus and all timestamps of older 
artifacts, with different classifier.

>From this metdata file Maven figures out what the correct name is for the 
>artifact.
But Maven can resolve the name of classifierb, but not the name of classifierB. 
The metadata is not correctly parsed! All information is there, but still Maven 
can only find the artifact with the latest timestamp.

Here is an example of an metadata file:
{code:xml}
 <metadata modelVersion="1.1.0">
  <groupId>com.ccv.systems.modules.gen_modem</groupId> 
  <artifactId>modem</artifactId> 
  <version>07.20.3-SNAPSHOT</version> 
 <versioning>
 <snapshot>
  <timestamp>20120809.112920</timestamp> 
  <buildNumber>97</buildNumber> 
  </snapshot>
  <lastUpdated>20120809112920</lastUpdated> 
 <snapshotVersion>
  <classifier>classsifierA</classifier> 
  <extension>jar</extension> 
  <value>07.20.3-20120809.112124-88</value> 
  <updated>20120809112124</updated> 
  </snapshotVersion>
 <snapshotVersion>
  <classifier>classsifierB</classifier> 
  <extension>jar</extension> 
  <value>07.20.3-20120809.112920-97</value> 
  <updated>20120809112920</updated> 
  </snapshotVersion>
  </snapshotVersions>
  </versioning>
  </metadata>
{code}

  was:
Maven can only retrieve an artifact from Nexus with a classifier with latest 
timestamp.
Artifacts with classifiers with an older timestamp cannot be resolved.
For example. If I deploy an artifact Apple with classifier A and a bit later 
deploy the same artifact with classifier B.

Next I want to retrieve the artifacts from Nexus:
For a module Banana, which needs Apple with classifier A the Artifact resolver 
will fail.
For a module Strawberry, which needs Apple with classifier B the Artifact 
resolver will succesfully resolve the artifact.

I found the cause for this behaviour:
With an proxy between Maven and Nexus I could see the behavour of Maven, at the 
moment that I want to fetch an artifact:

First the metadata.xml is fetched from Nexus. This file does contain the 
timestamp of the latest artifact in nexus and all timestamps of older 
artifacts, with different classifier.

>From this metdata file Maven figures out what the correct name is for the 
>artifact.
But Maven can resolve the name of classifierb, but not the name of classifierB. 
The metadata is not correctly parsed! All information is there, but still Maven 
can only find the artifact with the latest timestamp.

Here is an example of an metadata file:
 <metadata modelVersion="1.1.0">
  <groupId>com.ccv.systems.modules.gen_modem</groupId> 
  <artifactId>modem</artifactId> 
  <version>07.20.3-SNAPSHOT</version> 
 <versioning>
 <snapshot>
  <timestamp>20120809.112920</timestamp> 
  <buildNumber>97</buildNumber> 
  </snapshot>
  <lastUpdated>20120809112920</lastUpdated> 
 <snapshotVersion>
  <classifier>classsifierA</classifier> 
  <extension>jar</extension> 
  <value>07.20.3-20120809.112124-88</value> 
  <updated>20120809112124</updated> 
  </snapshotVersion>
 <snapshotVersion>
  <classifier>classsifierB</classifier> 
  <extension>jar</extension> 
  <value>07.20.3-20120809.112920-97</value> 
  <updated>20120809112920</updated> 
  </snapshotVersion>
  </snapshotVersions>
  </versioning>
  </metadata>


    
> Incorrect parsing of metadata by Maven: Cannot find snapshot artifact with 
> older timestamp
> ------------------------------------------------------------------------------------------
>
>                 Key: MNG-5324
>                 URL: https://jira.codehaus.org/browse/MNG-5324
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.0.4
>            Reporter: Anton Smeenk
>         Attachments: DefaultVersionResolver.java, DefaultVersionResolver.java
>
>
> Maven can only retrieve an artifact from Nexus with a classifier with latest 
> timestamp.
> Artifacts with classifiers with an older timestamp cannot be resolved.
> For example. If I deploy an artifact Apple with classifier A and a bit later 
> deploy the same artifact with classifier B.
> Next I want to retrieve the artifacts from Nexus:
> For a module Banana, which needs Apple with classifier A the Artifact 
> resolver will fail.
> For a module Strawberry, which needs Apple with classifier B the Artifact 
> resolver will succesfully resolve the artifact.
> I found the cause for this behaviour:
> With an proxy between Maven and Nexus I could see the behavour of Maven, at 
> the moment that I want to fetch an artifact:
> First the metadata.xml is fetched from Nexus. This file does contain the 
> timestamp of the latest artifact in nexus and all timestamps of older 
> artifacts, with different classifier.
> From this metdata file Maven figures out what the correct name is for the 
> artifact.
> But Maven can resolve the name of classifierb, but not the name of 
> classifierB. 
> The metadata is not correctly parsed! All information is there, but still 
> Maven can only find the artifact with the latest timestamp.
> Here is an example of an metadata file:
> {code:xml}
>  <metadata modelVersion="1.1.0">
>   <groupId>com.ccv.systems.modules.gen_modem</groupId> 
>   <artifactId>modem</artifactId> 
>   <version>07.20.3-SNAPSHOT</version> 
>  <versioning>
>  <snapshot>
>   <timestamp>20120809.112920</timestamp> 
>   <buildNumber>97</buildNumber> 
>   </snapshot>
>   <lastUpdated>20120809112920</lastUpdated> 
>  <snapshotVersion>
>   <classifier>classsifierA</classifier> 
>   <extension>jar</extension> 
>   <value>07.20.3-20120809.112124-88</value> 
>   <updated>20120809112124</updated> 
>   </snapshotVersion>
>  <snapshotVersion>
>   <classifier>classsifierB</classifier> 
>   <extension>jar</extension> 
>   <value>07.20.3-20120809.112920-97</value> 
>   <updated>20120809112920</updated> 
>   </snapshotVersion>
>   </snapshotVersions>
>   </versioning>
>   </metadata>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to