mirror of https://github.com/apache/archiva.git
[MRM-1194] Archiva doesn't cope with versions in a pom.xml that are properties
o get latest timestamped file if no -SNAPSHOT exists when resolving the pom o added tests git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@801946 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
06ac3284ec
commit
d150a6ed98
|
@ -420,4 +420,9 @@ public class ManagedDefaultRepositoryContent
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setFiletypes( FileTypes filetypes )
|
||||||
|
{
|
||||||
|
this.filetypes = filetypes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,16 +20,23 @@ package org.apache.maven.archiva.repository.project.resolvers;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.maven.archiva.common.utils.VersionComparator;
|
||||||
|
import org.apache.maven.archiva.common.utils.VersionUtil;
|
||||||
import org.apache.maven.archiva.model.ArchivaArtifact;
|
import org.apache.maven.archiva.model.ArchivaArtifact;
|
||||||
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
||||||
import org.apache.maven.archiva.model.VersionedReference;
|
import org.apache.maven.archiva.model.VersionedReference;
|
||||||
|
import org.apache.maven.archiva.repository.ContentNotFoundException;
|
||||||
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
|
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
|
||||||
import org.apache.maven.archiva.repository.project.ProjectModelException;
|
import org.apache.maven.archiva.repository.project.ProjectModelException;
|
||||||
import org.apache.maven.archiva.repository.project.ProjectModelReader;
|
import org.apache.maven.archiva.repository.project.ProjectModelReader;
|
||||||
import org.apache.maven.archiva.repository.project.ProjectModelResolver;
|
import org.apache.maven.archiva.repository.project.ProjectModelResolver;
|
||||||
import org.apache.maven.archiva.xml.XMLException;
|
import org.apache.maven.archiva.xml.XMLException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolve Project from managed repository.
|
* Resolve Project from managed repository.
|
||||||
*
|
*
|
||||||
|
@ -56,6 +63,27 @@ public class ManagedRepositoryProjectResolver
|
||||||
|
|
||||||
File repoFile = repository.toFile( artifact );
|
File repoFile = repository.toFile( artifact );
|
||||||
|
|
||||||
|
// MRM-1194
|
||||||
|
if( !repoFile.exists() && VersionUtil.isGenericSnapshot( reference.getVersion() ) )
|
||||||
|
{
|
||||||
|
// check if a timestamped version exists, get the latest if true
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<String> versions = new ArrayList<String>( repository.getVersions( reference ) );
|
||||||
|
Collections.sort( versions, VersionComparator.getInstance() );
|
||||||
|
String latestSnapshot = versions.get( versions.size() - 1 );
|
||||||
|
artifact =
|
||||||
|
new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), latestSnapshot, "", "pom",
|
||||||
|
repository.getId() );
|
||||||
|
|
||||||
|
repoFile = repository.toFile( artifact );
|
||||||
|
}
|
||||||
|
catch( ContentNotFoundException e )
|
||||||
|
{
|
||||||
|
throw new ProjectModelException( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return reader.read( repoFile );
|
return reader.read( repoFile );
|
||||||
|
@ -65,5 +93,4 @@ public class ManagedRepositoryProjectResolver
|
||||||
throw new ProjectModelException( e.getMessage(), e );
|
throw new ProjectModelException( e.getMessage(), e );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ package org.apache.maven.archiva.repository.project.filters;
|
||||||
|
|
||||||
import org.apache.maven.archiva.common.utils.VersionUtil;
|
import org.apache.maven.archiva.common.utils.VersionUtil;
|
||||||
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
||||||
|
import org.apache.maven.archiva.model.ArtifactReference;
|
||||||
import org.apache.maven.archiva.model.Dependency;
|
import org.apache.maven.archiva.model.Dependency;
|
||||||
import org.apache.maven.archiva.model.Individual;
|
import org.apache.maven.archiva.model.Individual;
|
||||||
import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase;
|
import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase;
|
||||||
|
@ -84,6 +85,7 @@ public class EffectiveProjectModelFilterTest
|
||||||
assertEffectiveProject(
|
assertEffectiveProject(
|
||||||
"/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom",
|
"/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom",
|
||||||
"/archiva-model-effective.pom");
|
"/archiva-model-effective.pom");
|
||||||
|
|
||||||
assertEffectiveProject(
|
assertEffectiveProject(
|
||||||
"/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom",
|
"/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom",
|
||||||
"/test-project-model-effective.pom");
|
"/test-project-model-effective.pom");
|
||||||
|
@ -220,6 +222,49 @@ public class EffectiveProjectModelFilterTest
|
||||||
assertTrue( passedWagonVersionChecking );
|
assertTrue( passedWagonVersionChecking );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MRM-1194
|
||||||
|
public void testEffectiveProjectPropertyExistingParentHasUniqueSnapshotVersion()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
initTestResolverFactory();
|
||||||
|
EffectiveProjectModelFilter filter = lookupEffective();
|
||||||
|
|
||||||
|
String pomFile = "/org/apache/archiva/sample-project/2.1-SNAPSHOT/sample-project-2.1-SNAPSHOT.pom";
|
||||||
|
ArchivaProjectModel startModel = createArchivaProjectModel( DEFAULT_REPOSITORY + pomFile );
|
||||||
|
|
||||||
|
String buildHelperPluginVersion = "1.0";
|
||||||
|
|
||||||
|
boolean passedBuildHelperVersionChecking = false;
|
||||||
|
|
||||||
|
List<ArtifactReference> startPlugins = startModel.getPlugins();
|
||||||
|
for( ArtifactReference plugin : startPlugins )
|
||||||
|
{
|
||||||
|
if( "build-helper-maven-plugin".equals( plugin.getArtifactId() ) )
|
||||||
|
{
|
||||||
|
assertEquals( "${build-helper-maven-plugin.version}", plugin.getVersion() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ArchivaProjectModel effectiveModel = filter.filter( startModel );
|
||||||
|
|
||||||
|
List<ArtifactReference> effectivePlugins = effectiveModel.getPlugins();
|
||||||
|
for( ArtifactReference plugin : effectivePlugins )
|
||||||
|
{
|
||||||
|
if( "build-helper-maven-plugin".equals( plugin.getArtifactId() ) )
|
||||||
|
{
|
||||||
|
assertEquals( buildHelperPluginVersion, plugin.getVersion() );
|
||||||
|
|
||||||
|
if ( !passedBuildHelperVersionChecking )
|
||||||
|
{
|
||||||
|
passedBuildHelperVersionChecking = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue( passedBuildHelperVersionChecking );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private ProjectModelResolverFactory initTestResolverFactory()
|
private ProjectModelResolverFactory initTestResolverFactory()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,138 @@
|
||||||
|
package org.apache.maven.archiva.repository.project.resolvers;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import org.apache.maven.archiva.configuration.FileTypes;
|
||||||
|
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
|
||||||
|
import org.apache.maven.archiva.model.ArchivaProjectModel;
|
||||||
|
import org.apache.maven.archiva.model.VersionedReference;
|
||||||
|
import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
|
||||||
|
import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader;
|
||||||
|
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
|
||||||
|
|
||||||
|
public class ManagedRepositoryProjectResolverTest
|
||||||
|
extends PlexusInSpringTestCase
|
||||||
|
{
|
||||||
|
private ManagedRepositoryProjectResolver resolver;
|
||||||
|
|
||||||
|
public void setUp() throws Exception
|
||||||
|
{
|
||||||
|
super.setUp();
|
||||||
|
|
||||||
|
FileTypes fileTypes = new MockFileTypes();
|
||||||
|
|
||||||
|
ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration();
|
||||||
|
repoConfig.setId( "test-repo" );
|
||||||
|
repoConfig.setLocation( new File( getBasedir(), "target/test-classes/test-repo" ).getPath() );
|
||||||
|
repoConfig.setName( "Test Repository" );
|
||||||
|
|
||||||
|
ManagedDefaultRepositoryContent repository = new ManagedDefaultRepositoryContent();
|
||||||
|
repository.setRepository( repoConfig );
|
||||||
|
repository.setFiletypes( fileTypes );
|
||||||
|
|
||||||
|
resolver = new ManagedRepositoryProjectResolver( repository, new ProjectModel400Reader() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testResolveSnapshotUniqueVersionPresent()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
VersionedReference ref = new VersionedReference();
|
||||||
|
ref.setGroupId( "org.apache.archiva" );
|
||||||
|
ref.setArtifactId( "unique-version" );
|
||||||
|
ref.setVersion( "1.0-SNAPSHOT" );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ArchivaProjectModel model = resolver.resolveProjectModel( ref );
|
||||||
|
|
||||||
|
assertNotNull( model );
|
||||||
|
assertEquals( "org.apache.archiva", model.getGroupId() );
|
||||||
|
assertEquals( "unique-version", model.getArtifactId() );
|
||||||
|
assertEquals( "1.0-SNAPSHOT", model.getVersion() );
|
||||||
|
assertEquals( "Unique Version Snapshot - Build 3", model.getName() );
|
||||||
|
}
|
||||||
|
catch ( Exception e )
|
||||||
|
{
|
||||||
|
fail( "The latest timestamp should have been found!" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testResolveSnapshotGenericVersionPresent()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
VersionedReference ref = new VersionedReference();
|
||||||
|
ref.setGroupId( "org.apache.archiva" );
|
||||||
|
ref.setArtifactId( "generic-version" );
|
||||||
|
ref.setVersion( "1.0-SNAPSHOT" );
|
||||||
|
|
||||||
|
ArchivaProjectModel model = resolver.resolveProjectModel( ref );
|
||||||
|
|
||||||
|
assertNotNull( model );
|
||||||
|
assertEquals( "org.apache.archiva", model.getGroupId() );
|
||||||
|
assertEquals( "generic-version", model.getArtifactId() );
|
||||||
|
assertEquals( "1.0-SNAPSHOT", model.getVersion() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testResolveSuccessful()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
VersionedReference ref = new VersionedReference();
|
||||||
|
ref.setGroupId( "org.apache.archiva" );
|
||||||
|
ref.setArtifactId( "released-version" );
|
||||||
|
ref.setVersion( "1.0" );
|
||||||
|
|
||||||
|
ArchivaProjectModel model = resolver.resolveProjectModel( ref );
|
||||||
|
|
||||||
|
assertNotNull( model );
|
||||||
|
assertEquals( "org.apache.archiva", model.getGroupId() );
|
||||||
|
assertEquals( "released-version", model.getArtifactId() );
|
||||||
|
assertEquals( "1.0", model.getVersion() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testResolveNotFound()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
VersionedReference ref = new VersionedReference();
|
||||||
|
ref.setGroupId( "org.apache.archiva" );
|
||||||
|
ref.setArtifactId( "non-existant" );
|
||||||
|
ref.setVersion( "2.0" );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
resolver.resolveProjectModel( ref );
|
||||||
|
fail( "An exception should have been thrown." );
|
||||||
|
}
|
||||||
|
catch( Exception e )
|
||||||
|
{
|
||||||
|
assertTrue( true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MockFileTypes
|
||||||
|
extends FileTypes
|
||||||
|
{
|
||||||
|
public boolean matchesArtifactPattern( String relativePath )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>sample-parent</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<version>2.1-SNAPSHOT</version>
|
||||||
|
<name>sample-parent Build 1</name>
|
||||||
|
<build>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>build-helper-maven-plugin</artifactId>
|
||||||
|
<version>${build-helper-maven-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
<properties>
|
||||||
|
<build-helper-maven-plugin.version>1.0</build-helper-maven-plugin.version>
|
||||||
|
</properties>
|
||||||
|
</project>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>sample-parent</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<version>2.1-SNAPSHOT</version>
|
||||||
|
<name>sample-parent Build 2</name>
|
||||||
|
<build>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>build-helper-maven-plugin</artifactId>
|
||||||
|
<version>${build-helper-maven-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
<properties>
|
||||||
|
<build-helper-maven-plugin.version>1.0</build-helper-maven-plugin.version>
|
||||||
|
</properties>
|
||||||
|
</project>
|
|
@ -0,0 +1,47 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>sample-parent</artifactId>
|
||||||
|
<version>2.1-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>sample-project</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>sample-project</name>
|
||||||
|
<url>http://maven.apache.org</url>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>3.8.2</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>build-helper-maven-plugin</artifactId>
|
||||||
|
<version>${build-helper-maven-plugin.version}</version>
|
||||||
|
<inherited>true</inherited>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>add-source</id>
|
||||||
|
<phase>generate-sources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>add-source</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sources>
|
||||||
|
<source>${basedir}/java-gen</source>
|
||||||
|
<source>${basedir}/java-src</source>
|
||||||
|
<source>${basedir}/java-test</source>
|
||||||
|
</sources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>generic-version</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<name>Generic Snapshot Version</name>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>released-version</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
<name>Released Version</name>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>unique-version</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<name>Unique Version Snapshot - Build 1</name>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>unique-version</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<name>Unique Version Snapshot - Build 2</name>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.archiva</groupId>
|
||||||
|
<artifactId>unique-version</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<name>Unique Version Snapshot - Build 3</name>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
</project>
|
Loading…
Reference in New Issue