You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@codehaus.org> on 2012/10/26 21:14:13 UTC
[jira] (MNG-5324) Incorrect parsing of metadata by Maven: Cannot
find snapshot artifact with older timestamp
[ https://jira.codehaus.org/browse/MNG-5324?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Scholte reassigned MNG-5324:
-----------------------------------
Assignee: Robert Scholte
> 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
> Assignee: Robert Scholte
> Attachments: DefaultVersionResolver.java, DefaultVersionResolver.java, DefaultVersionResolver.patch
>
>
> 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