maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Smeenk (JIRA)" <j...@codehaus.org>
Subject [jira] (MNG-5324) Incorrect parsing of metadata by Maven: Cannot find snapshot artifact with older timestamp
Date Sun, 12 Aug 2012 12:28:21 GMT

    [ https://jira.codehaus.org/browse/MNG-5324?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=306021#comment-306021
] 

Anton Smeenk commented on MNG-5324:
-----------------------------------

Hello guys,

i did do some debugging and I think I found the error.

The bug is in module maven-aether-provider in function resolveVersion.

This function is entered sometimes with an artifact with a snapshot version which ends on
"SNAPSHOT".
Sometimes it is entered with the shapshot artifact version with the timestamp in its name.

If I replace the name of the version with the base version (effectively always using the version
ending on SNAPSHOT
it works (almost)

A second bug is in one of the merge functions. I noticed that sometimes the content of the
infos map is partly destroyed by the merge function.

With these 2 small changes maven can resolve now artifacts with different classifiers and
different timestamps.

Attached is the file I modified, still with some logging on warning level you have to remove
of course.
The original file is douwloaded from svn on 12/8/2012.

Thanks Anton Smeenk
                
> 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
>
> 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>

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

        

Mime
View raw message