You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@archiva.apache.org by to...@gi-de.com on 2008/04/25 10:01:46 UTC

Handling maven-metadata-.xml when deploying snapshots

Hi, 

I´m using Maven 2.0.9 and Archiva 1.0.2, with an internal and snapshots 
managed Repo.

after "mvn clean deploy" of my artifact, I can find two 
"maven-metadata.xml" in my localRepository.
The "maven-metadata-snapshots.xml" is always one second older than the 
"maven-metadata-local.xml":

maven-metadata-local.xml:

<?xml version="1.0" encoding="UTF-8"?><metadata>
  <groupId>com.gide.common</groupId>
  <artifactId>gide-common</artifactId>
  <version>3.3.0-SNAPSHOT</version>
  <versioning>
    <snapshot>
      <localCopy>true</localCopy>
    </snapshot>
    <lastUpdated>20080425070414</lastUpdated>
  </versioning>
</metadata>

maven-metadata-snapshots.xml:
<?xml version="1.0" encoding="UTF-8"?><metadata>
  <groupId>com.gide.common</groupId>
  <artifactId>gide-common</artifactId>
  <version>3.3.0-SNAPSHOT</version>
  <versioning>
    <snapshot>
      <buildNumber>7</buildNumber>
    </snapshot>
    <lastUpdated>20080425070415</lastUpdated>
  </versioning>
</metadata>

I guess this is because it´s being retrieved after the 
maven-metadata-local.xml was created:

[INFO] Installing 
D:\gide-common-main\pdv_cms\GDCAMS\src\common\gide-common\target\gide-common-3.3.0-SNAPSHOT.jar 
to 
\mavenrepo\com\gide\common\gide-common\3.3.0-SNAPSHOT\gide-common-3.3.0-SNAPSHOT.jar
[INFO] [deploy:deploy]
altDeploymentRepository = null
[INFO] Retrieving previous build number from snapshots
WAGON_VERSION: 1.0-beta-2
Uploading: 
http://cams-build2.intern:8080/archiva/repository/snapshots//com/gide/common/gide-common/3.3.0-SNAPSHOT/gide-common-3.3.0-SNAPSHOT.jar

25.04.2008 09:04:15 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
25.04.2008 09:04:16 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
25.04.2008 09:04:16 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
[INFO] Uploading project information for gide-common 3.3.0-SNAPSHOT
25.04.2008 09:04:16 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
25.04.2008 09:04:16 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
25.04.2008 09:04:17 hidden.org.apache.commons.httpclient.HttpMethodBase 
processRedirectResponse
INFO: Redirect requested but followRedirects is disabled
[INFO] Retrieving previous metadata from snapshots

Now i run into the following problem:

A build of a *.war or *.zip depending on the above artifact is checking 
the maven-metadata-local.xml file of the depending "gide-common" and tries 
to update the "maven-metadata-local.xml" - because the 
"maven-metadata-snapshots.xml" seems to be newer. 

This results to the following exception, when I write-protect the 
maven-metadata-local.xml file:

Reason: Error getting POM for 'com.gide.common:gide-common' from the 
repository: Unable to store local copy of metadata: Error updating group 
repository metadata
  com.gide.common:gide-common:pom:3.3.0-SNAPSHOT
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:575)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at 
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.artifact.resolver.ArtifactResolutionException: 
Unable to get dependency information: Unable to read the metadata file for 
artifact 'com.gide.common:gide-common:jar': Error getting POM for 
'com.gide.common:gide-common' from
 the repository: Unable to store local copy of metadata: Error updating 
group repository metadata
  com.gide.common:gide-common:pom:3.3.0-SNAPSHOT

 for project com.gide.common:gide-common
  com.gide.common:gide-common:jar:3.3.0-SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2),
  3rdparty (http://cams-build2.intern:8080/archiva/repository/3rdParty/),
  snapshots (http://cams-build2.intern:8080/archiva/repository/snapshots/
),
  internal (http://cams-build2.intern:8080/archiva/repository/internal/)
Path to dependency:
        1) com.gide.kms:kvcams-kms-war:war:2.7.0-SNAPSHOT
        2) com.gide.kms:gide-kms:jar:2.7.0-SNAPSHOT


        at 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:403)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:408)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:76)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:300)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:288)
        at 
org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1415)
        at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:405)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        ... 16 more
Caused by: 
org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException: 
Unable to read the metadata file for artifact 
'com.gide.common:gide-common:jar': Error getting POM for 
'com.gide.common:gide-common' from the repository: Unable to stor
e local copy of metadata: Error updating group repository metadata
  com.gide.common:gide-common:pom:3.3.0-SNAPSHOT

 for project com.gide.common:gide-common
        at 
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMetadataSource.java:135)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:380)
        ... 23 more
Caused by: org.apache.maven.project.ProjectBuildingException: Error 
getting POM for 'com.gide.common:gide-common' from the repository: Unable 
to store local copy of metadata: Error updating group repository metadata
  com.gide.common:gide-common:pom:3.3.0-SNAPSHOT

 for project com.gide.common:gide-common
        at 
org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:590)
        at 
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:249)
        at 
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMetadataSource.java:106)
        ... 24 more
Caused by: org.apache.maven.artifact.resolver.ArtifactResolutionException: 
Unable to store local copy of metadata: Error updating group repository 
metadata
  com.gide.common:gide-common:pom:3.3.0-SNAPSHOT


        at 
org.apache.maven.artifact.transform.SnapshotTransformation.transformForResolve(SnapshotTransformation.java:68)
        at 
org.apache.maven.artifact.transform.DefaultArtifactTransformationManager.transformForResolve(DefaultArtifactTransformationManager.java:57)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:129)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:74)
        at 
org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:556)
        ... 26 more
Caused by: 
org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException: 
Unable to store local copy of metadata: Error updating group repository 
metadata
        at 
org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.resolve(DefaultRepositoryMetadataManager.java:170)
        at 
org.apache.maven.artifact.transform.AbstractVersionTransformation.resolveVersion(AbstractVersionTransformation.java:65)
        at 
org.apache.maven.artifact.transform.SnapshotTransformation.transformForResolve(SnapshotTransformation.java:63)
        ... 30 more
Caused by: 
org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException: 
Error updating group repository metadata
        at 
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:72)
        at 
org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.updateSnapshotMetadata(DefaultRepositoryMetadataManager.java:256)
        at 
org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.mergeMetadata(DefaultRepositoryMetadataManager.java:211)
        at 
org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.resolve(DefaultRepositoryMetadataManager.java:166)
        ... 32 more
Caused by: java.io.FileNotFoundException: 
\mavenrepo\com\gide\common\gide-common\3.3.0-SNAPSHOT\maven-metadata-local.xml 
(Zugriff verweigert)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
        at 
hidden.org.codehaus.plexus.util.xml.XmlStreamWriter.<init>(XmlStreamWriter.java:61)
        at 
hidden.org.codehaus.plexus.util.WriterFactory.newXmlWriter(WriterFactory.java:112)
        at 
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata(AbstractRepositoryMetadata.java:134)
        at 
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:68)
        ... 35 more

When I don´t write-protect the file, it´s getting updated and the 
"<localCopy>true</localCopy>" section was deleted:
maven-metadata-local.xml:

<?xml version="1.0" encoding="UTF-8"?><metadata>
  <groupId>com.gide.common</groupId>
  <artifactId>gide-common</artifactId>
  <version>3.3.0-SNAPSHOT</version>
  <versioning>
    <snapshot/>
    <lastUpdated>20080425070414</lastUpdated>
  </versioning>
</metadata>

And my war and zip file now are containing a timestamped jar like: 
"gide-common-20080425.hhmmss-nr.jar"....

Any hints to this behaviour?

How can I prevent the "maven-metadata-local.xml" getting overridden by a 
depending build?
How can I force the *.war and *.zip packaging to use 
"gide-common-3.3.0-SNAPSHOT" instead of 
"gide-common-20080425.hhmmss-nr.jar" ?


Thanx, Torsten