mirror of https://github.com/apache/archiva.git
o adding the incomplete repository assembly that I started decoupling from the assembly plugin so that we do it in one place and not make 5 copies of the same tool again.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@471568 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
362f862831
commit
099089e837
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
~ Copyright 2006 The Apache Software Foundation.
|
||||
~
|
||||
~ Licensed 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.
|
||||
-->
|
||||
|
||||
<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">
|
||||
<parent>
|
||||
<groupId>org.apache.maven.archiva</groupId>
|
||||
<artifactId>archiva</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>archiva-repository-assembler</artifactId>
|
||||
<name>Archiva Repository Assembler</name>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>create-component-descriptor</id>
|
||||
<goals>
|
||||
<goal>descriptor</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-artifact</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-artifact-manager</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.archiva</groupId>
|
||||
<artifactId>archiva-utils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-container-default</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,29 @@
|
|||
<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.maven.archiva.repository.test</groupId>
|
||||
<artifactId>repository-assembly</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<name>Maven Quick Start Archetype</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptor>src/assemble/bin.xml</descriptor>
|
||||
<finalName>assembly</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,14 @@
|
|||
<assembly>
|
||||
<id>bin</id>
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
<repositories>
|
||||
<repository>
|
||||
<outputDirectory>repo</outputDirectory>
|
||||
<includes>
|
||||
<include>junit:junit</include>
|
||||
</includes>
|
||||
</repository>
|
||||
</repositories>
|
||||
</assembly>
|
|
@ -0,0 +1,13 @@
|
|||
package org.apache.maven.plugin.assembly.test;
|
||||
|
||||
/**
|
||||
* Hello world!
|
||||
*
|
||||
*/
|
||||
public class App
|
||||
{
|
||||
public static void main( String[] args )
|
||||
{
|
||||
System.out.println( "Hello World!" );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package org.apache.maven.plugin.assembly.test;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
/**
|
||||
* Unit test for simple App.
|
||||
*/
|
||||
public class AppTest
|
||||
extends TestCase
|
||||
{
|
||||
/**
|
||||
* Create the test case
|
||||
*
|
||||
* @param testName name of the test case
|
||||
*/
|
||||
public AppTest( String testName )
|
||||
{
|
||||
super( testName );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the suite of tests being tested
|
||||
*/
|
||||
public static Test suite()
|
||||
{
|
||||
return new TestSuite( AppTest.class );
|
||||
}
|
||||
|
||||
/**
|
||||
* Rigourous Test :-)
|
||||
*/
|
||||
public void testApp()
|
||||
{
|
||||
assertTrue( true );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,363 @@
|
|||
package org.apache.maven.archiva.repository.assembly;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* Licensed 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 org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolver;
|
||||
import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
import org.codehaus.plexus.util.IOUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.lang.reflect.Field;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
* @plexus.component role="org.apache.maven.archiva.RepositoryAssembler" role-hint="default"
|
||||
*/
|
||||
|
||||
// todo will need to pop the processed project cache using reflection
|
||||
public class DefaultRepositoryAssembler
|
||||
extends AbstractLogEnabled
|
||||
implements RepositoryAssembler
|
||||
{
|
||||
protected static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone( "UTC" );
|
||||
|
||||
protected static final String UTC_TIMESTAMP_PATTERN = "yyyyMMddHHmmss";
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
protected ArtifactFactory artifactFactory;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
protected ArtifactResolver artifactResolver;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
protected ArtifactRepositoryLayout repositoryLayout;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
protected ArtifactRepositoryFactory artifactRepositoryFactory;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
protected ArtifactMetadataSource metadataSource;
|
||||
|
||||
public void assemble( Set artifacts,
|
||||
File localRepository,
|
||||
Set remoteRepositories,
|
||||
ArtifactRepositoryLayout layout,
|
||||
File repositoryDirectory )
|
||||
throws RepositoryAssemblyException
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void assemble( Set artifacts,
|
||||
File localRepository,
|
||||
Set remoteRepositories,
|
||||
ArtifactFilter artifactFilter,
|
||||
ArtifactRepositoryLayout layout,
|
||||
File repositoryDirectory )
|
||||
throws RepositoryAssemblyException
|
||||
{
|
||||
ArtifactRepository targetRepository = createLocalRepository( repositoryDirectory );
|
||||
|
||||
ArtifactResolutionResult result = null;
|
||||
|
||||
Artifact originatingArtifact = null;
|
||||
|
||||
ArtifactRepository localRepo = createLocalRepository( localRepository );
|
||||
try
|
||||
{
|
||||
// i have to get everything first as a filter or transformation here
|
||||
// doesn't seem to work
|
||||
// to align everything. If I use a filter to change the version on
|
||||
// the fly then I get the
|
||||
// I get JARs but no POMs, and in some directories POMs with no
|
||||
// JARs.
|
||||
|
||||
// FIXME I'm not getting runtime dependencies here
|
||||
result = artifactResolver.resolveTransitively( artifacts, originatingArtifact,
|
||||
new ArrayList( remoteRepositories ),
|
||||
localRepo, metadataSource );
|
||||
}
|
||||
catch ( ArtifactResolutionException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( ArtifactNotFoundException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
|
||||
}
|
||||
|
||||
assembleRepositoryArtifacts( result, artifactFilter, localRepo, targetRepository, repositoryDirectory );
|
||||
|
||||
ArtifactRepository centralRepository = findCentralRepository( project );
|
||||
|
||||
assembleRepositoryMetadata( result, artifactFilter, centralRepository, targetRepository );
|
||||
}
|
||||
|
||||
private void assembleRepositoryArtifacts( ArtifactResolutionResult result,
|
||||
ArtifactFilter filter,
|
||||
List remoteRepositories,
|
||||
ArtifactRepository localRepository,
|
||||
ArtifactRepository targetRepository,
|
||||
File repositoryDirectory )
|
||||
throws RepositoryAssemblyException
|
||||
{
|
||||
try
|
||||
{
|
||||
// Now that we have the graph, let's try to align it to versions
|
||||
// that we want and remove
|
||||
// the assembly we previously populated.
|
||||
FileUtils.deleteDirectory( repositoryDirectory );
|
||||
|
||||
FileUtils.mkdir( repositoryDirectory.getAbsolutePath() );
|
||||
|
||||
for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
|
||||
{
|
||||
Artifact a = (Artifact) i.next();
|
||||
|
||||
if ( filter.include( a ) )
|
||||
{
|
||||
// We need to flip it back to not being resolved so we can
|
||||
// look for it again!
|
||||
a.setResolved( false );
|
||||
|
||||
artifactResolver.resolve( a, remoteRepositories, localRepository );
|
||||
|
||||
File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( a ) );
|
||||
FileUtils.copyFile( a.getFile(), targetFile );
|
||||
|
||||
writeChecksums( targetFile );
|
||||
|
||||
if ( !"pom".equals( a.getType() ) )
|
||||
{
|
||||
a = artifactFactory.createProjectArtifact( a.getGroupId(), a.getArtifactId(), a.getVersion() );
|
||||
|
||||
MavenProject p = projectBuilder.buildFromRepository( a, project.getRemoteArtifactRepositories(),
|
||||
localRepository );
|
||||
|
||||
do
|
||||
{
|
||||
a = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(), p
|
||||
.getVersion() );
|
||||
|
||||
setAlignment( a, groupVersionAlignments );
|
||||
|
||||
File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( a ) );
|
||||
|
||||
if ( !sourceFile.exists() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( a ) );
|
||||
|
||||
FileUtils.copyFile( sourceFile, targetFile );
|
||||
|
||||
writeChecksums( targetFile );
|
||||
|
||||
p = p.getParent();
|
||||
}
|
||||
while ( p != null );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( ArtifactResolutionException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( ArtifactNotFoundException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
|
||||
}
|
||||
}
|
||||
|
||||
private void assembleRepositoryMetadata( ArtifactResolutionResult result,
|
||||
ArtifactFilter filter,
|
||||
ArtifactRepository centralRepository,
|
||||
ArtifactRepository targetRepository )
|
||||
throws RepositoryAssemblyException
|
||||
{
|
||||
for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
|
||||
{
|
||||
Artifact a = (Artifact) i.next();
|
||||
|
||||
if ( filter.include( a ) )
|
||||
{
|
||||
Versioning v = new Versioning();
|
||||
|
||||
v.setRelease( a.getVersion() );
|
||||
|
||||
v.setLatest( a.getVersion() );
|
||||
|
||||
v.addVersion( a.getVersion() );
|
||||
|
||||
v.setLastUpdated( getUtcDateFormatter().format( new Date() ) );
|
||||
|
||||
ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( a, v );
|
||||
String path = targetRepository.pathOfLocalRepositoryMetadata( metadata, centralRepository );
|
||||
File metadataFile = new File( targetRepository.getBasedir(), path );
|
||||
|
||||
MetadataXpp3Writer metadataWriter = new MetadataXpp3Writer();
|
||||
|
||||
Writer writer = null;
|
||||
try
|
||||
{
|
||||
writer = new FileWriter( metadataFile );
|
||||
|
||||
metadataWriter.write( writer, metadata.getMetadata() );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( writer );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
writeChecksums( metadataFile );
|
||||
|
||||
File metadataFileRemote = new File( targetRepository.getBasedir(), targetRepository
|
||||
.pathOfRemoteRepositoryMetadata( metadata ) );
|
||||
|
||||
FileUtils.copyFile( metadataFile, metadataFileRemote );
|
||||
|
||||
FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".sha1" ),
|
||||
new File( metadataFileRemote.getParentFile(),
|
||||
metadataFileRemote.getName() + ".sha1" ) );
|
||||
|
||||
FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".md5" ),
|
||||
new File( metadataFileRemote.getParentFile(),
|
||||
metadataFileRemote.getName() + ".md5" ) );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void writeChecksums( File file )
|
||||
throws IOException, RepositoryAssemblyException
|
||||
{
|
||||
try
|
||||
{
|
||||
String md5 = DigestUtils.createChecksum( file, "MD5" );
|
||||
String sha1 = DigestUtils.createChecksum( file, "SHA-1" );
|
||||
|
||||
FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".md5" ).getAbsolutePath(), md5
|
||||
.toLowerCase() );
|
||||
FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".sha1" ).getAbsolutePath(), sha1
|
||||
.toLowerCase() );
|
||||
}
|
||||
catch ( NoSuchAlgorithmException e )
|
||||
{
|
||||
throw new RepositoryAssemblyException( "Unable to get write checksums: " + e.getMessage(), e );
|
||||
}
|
||||
}
|
||||
|
||||
protected static DateFormat getUtcDateFormatter()
|
||||
{
|
||||
DateFormat utcDateFormatter = new SimpleDateFormat( UTC_TIMESTAMP_PATTERN );
|
||||
utcDateFormatter.setTimeZone( UTC_TIME_ZONE );
|
||||
return utcDateFormatter;
|
||||
}
|
||||
|
||||
protected ArtifactRepository createLocalRepository( File directory )
|
||||
{
|
||||
String localRepositoryUrl = directory.getAbsolutePath();
|
||||
|
||||
if ( !localRepositoryUrl.startsWith( "file:" ) )
|
||||
{
|
||||
localRepositoryUrl = "file://" + localRepositoryUrl;
|
||||
}
|
||||
|
||||
return createRepository( "local", localRepositoryUrl, false, true,
|
||||
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
|
||||
}
|
||||
|
||||
public ArtifactRepository createRepository( String repositoryId,
|
||||
String repositoryUrl,
|
||||
boolean offline,
|
||||
boolean updateSnapshots,
|
||||
String globalChecksumPolicy )
|
||||
{
|
||||
ArtifactRepository localRepository =
|
||||
new DefaultArtifactRepository( repositoryId, repositoryUrl, repositoryLayout );
|
||||
|
||||
boolean snapshotPolicySet = false;
|
||||
|
||||
if ( offline )
|
||||
{
|
||||
snapshotPolicySet = true;
|
||||
}
|
||||
|
||||
if ( !snapshotPolicySet && updateSnapshots )
|
||||
{
|
||||
artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS );
|
||||
}
|
||||
|
||||
artifactRepositoryFactory.setGlobalChecksumPolicy( globalChecksumPolicy );
|
||||
|
||||
return localRepository;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package org.apache.maven.archiva.repository.assembly;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* Licensed 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 org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Component responsible for writing out {@link Set}s of artifacts to a local directory. The resultant repository
|
||||
* structure should be suitable for use as a remote repository.
|
||||
*
|
||||
* @author Jason van Zyl
|
||||
*/
|
||||
public interface RepositoryAssembler
|
||||
{
|
||||
String ROLE = RepositoryAssembler.class.getName();
|
||||
|
||||
/**
|
||||
* Write out a set of {@link org.apache.maven.artifact.Artifact}s, which are found in a
|
||||
* specified local repository and remote repositories, with a given {@link ArtifactRepositoryLayout}
|
||||
* to a specified directory.
|
||||
*
|
||||
* @param artifacts Artifacts to be written out to disk.
|
||||
* @param localRepository Local repository to check for artifacts in the provided set.
|
||||
* @param remoteRepositories Remote repositories to check for artifacts in the provided set.
|
||||
* @param repositoryLayout The repository layout to use for the target repository.
|
||||
* @param repositoryDirectory The directory to write out the repository in.
|
||||
* @throws RepositoryAssemblyException
|
||||
*/
|
||||
public void assemble( Set artifacts,
|
||||
File localRepository,
|
||||
Set remoteRepositories,
|
||||
ArtifactRepositoryLayout repositoryLayout,
|
||||
File repositoryDirectory )
|
||||
throws RepositoryAssemblyException;
|
||||
|
||||
/**
|
||||
* Write out a set of {@link org.apache.maven.artifact.Artifact}s, which are found in a
|
||||
* specified local repository and remote repositories, with a given {@link ArtifactRepositoryLayout}
|
||||
* to a specified directory.
|
||||
*
|
||||
* @param artifacts Artifacts to be written out to disk.
|
||||
* @param localRepository Local repository to check for artifacts in the provided set.
|
||||
* @param remoteRepositories Remote repositories to check for artifacts in the provided set.
|
||||
* @param artifactFilter Filter to use while processing artifacts. Can change or restrict given artifacts.
|
||||
* @param repositoryLayout The repository layout to use for the target repository.
|
||||
* @param repositoryDirectory The directory to write out the repository in.
|
||||
* @throws RepositoryAssemblyException
|
||||
*/
|
||||
public void assemble( Set artifacts,
|
||||
File localRepository,
|
||||
Set remoteRepositories,
|
||||
ArtifactFilter artifactFilter,
|
||||
ArtifactRepositoryLayout repositoryLayout,
|
||||
File repositoryDirectory )
|
||||
throws RepositoryAssemblyException;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package org.apache.maven.archiva.repository.assembly;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
*/
|
||||
public class RepositoryAssemblyException
|
||||
extends Exception
|
||||
{
|
||||
public RepositoryAssemblyException( String string )
|
||||
{
|
||||
super( string );
|
||||
}
|
||||
|
||||
public RepositoryAssemblyException( String string, Throwable throwable )
|
||||
{
|
||||
super( string, throwable );
|
||||
}
|
||||
|
||||
public RepositoryAssemblyException( Throwable throwable )
|
||||
{
|
||||
super( throwable );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,793 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
~ Copyright 2006 The Apache Software Foundation.
|
||||
~
|
||||
~ Licensed 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Since modello does not have the capability to share descriptor,
|
||||
If you make changes to FileSet, FileItem, DependendencySet, or
|
||||
adding new collection, make sure to propagate your changes
|
||||
to "component.mdo".
|
||||
-->
|
||||
|
||||
<model>
|
||||
<id>assembly</id>
|
||||
<name>Assembly</name>
|
||||
<description>
|
||||
<![CDATA[
|
||||
<p>
|
||||
Maven Assembly Plugin relies on the provided assembly descriptors to dictate
|
||||
its execution. Although there are already prefabricated descriptors available
|
||||
for use, they can only suffice some of the common assembly requirements.
|
||||
</p>
|
||||
<p>
|
||||
So in order for you to customize the way the Assembly Plugin creates your
|
||||
assemblies, you need to know how to use the Assembly Descriptor.
|
||||
</p>
|
||||
<p>
|
||||
This descriptor specifies the type of assembly archive to create, the contents
|
||||
of the assembly, and the ways in which dependencies or its modules are bundled
|
||||
with an assembly.
|
||||
</p>
|
||||
]]>
|
||||
</description>
|
||||
<defaults>
|
||||
<default>
|
||||
<key>package</key>
|
||||
<value>org.apache.maven.plugins.assembly.model</value>
|
||||
</default>
|
||||
</defaults>
|
||||
<classes>
|
||||
<class rootElement="true" xml.tagName="assembly">
|
||||
<name>Assembly</name>
|
||||
<description>
|
||||
<![CDATA[
|
||||
An assembly defines a collection of files usually distributed in an
|
||||
archive format such as zip, tar, or tar.gz that is generated from a
|
||||
project. For example, a project could produce a ZIP assembly which
|
||||
contains a project's JAR artifact in the root directory, the
|
||||
runtime dependencies in a lib/ directory, and a shell script to launch
|
||||
a stand-alone application.
|
||||
]]>
|
||||
</description>
|
||||
<version>1.0.0+</version>
|
||||
<fields>
|
||||
<field>
|
||||
<name>id</name>
|
||||
<version>1.0.0+</version>
|
||||
<required>true</required>
|
||||
<type>String</type>
|
||||
<description>
|
||||
Sets the id of this assembly. This is a symbolic name for a
|
||||
particular assembly of files from this project. Also, aside from
|
||||
being used to distinctly name the assembled package by attaching
|
||||
its value to the generated archive, the id is used as your
|
||||
artifact's classifier when deploying.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>formats</name>
|
||||
<version>1.0.0+</version>
|
||||
<required>true</required>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies the formats of the assembly. Multiple formats can be
|
||||
supplied and the Assembly Plugin will generate an archive for each
|
||||
desired formats. When deploying your project, all file formats
|
||||
specified will also be deployed. A format is specified by supplying
|
||||
one of the following values in a <format> subelement:
|
||||
<ul>
|
||||
<li><b>"zip"</b> - Creates a ZIP file format</li>
|
||||
<li><b>"gz"</b> - Creates a GZIP format</li>
|
||||
<li><b>"tar"</b> - Creates a TAR format</li>
|
||||
<li><b>"tar.gz"</b> - Creates a gzip'd TAR format</li>
|
||||
<li><b>"tar.bz2</b> - Creates a bzip'd TAR format</li>
|
||||
</ul>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>includeBaseDirectory</name>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
Includes a base directory in the final archive. For example,
|
||||
if you are creating an assembly named "your-app", setting
|
||||
includeBaseDirectory to true will create an archive that
|
||||
includes this base directory. If this option is set to false
|
||||
the archive created will unzip its content to the current
|
||||
directory. Default value is true.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>baseDirectory</name>
|
||||
<version>1.1.0</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
Sets the base directory of the resulting assembly archive. If this is not
|
||||
set and includeBaseDirectory == true, ${project.build.finalName} will be used instead.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>includeSiteDirectory</name>
|
||||
<type>boolean</type>
|
||||
<defaultValue>false</defaultValue>
|
||||
<description>
|
||||
Includes a site directory in the final archive. The site directory
|
||||
location of a project is determined by the siteDirectory parameter
|
||||
of the Assembly Plugin. Default value is false.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>moduleSets</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>ModuleSet</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which module files to include in the assembly. A moduleSet
|
||||
is specified by providing one or more of <moduleSet>
|
||||
subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>fileSets</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>FileSet</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which groups of files to include in the assembly. A
|
||||
fileSet is specified by providing one or more of <fileSet>
|
||||
subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>files</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>FileItem</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which single files to include in the assembly. A file
|
||||
is specified by providing one or more of <file>
|
||||
subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>dependencySets</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>DependencySet</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which dependencies to include in the assembly. A
|
||||
dependencySet is specified by providing one or more of
|
||||
<dependencySet> subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>repositories</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>Repository</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which repository files to include in the assembly. A
|
||||
repository is specified by providing one or more of
|
||||
<repository> subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>componentDescriptors</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies the shared components xml file locations to include in the
|
||||
assembly. The locations specified must be relative to the basedir of
|
||||
the project. When multiple componentDescriptors are found, their
|
||||
contents are merged. Check out the <a href="component.html">
|
||||
descriptor components</a> for more information. A
|
||||
componentDescriptor is specified by providing one or more of
|
||||
<componentDescriptor> subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
|
||||
<class>
|
||||
<name>SetBase</name>
|
||||
<version>1.0.0+</version>
|
||||
<fields>
|
||||
<field>
|
||||
<name>useDefaultExcludes</name>
|
||||
<version>1.1.0</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
Whether standard exclusion patterns, such as those matching CVS and Subversion
|
||||
metadata files, should be used when calculating the files affected by this set.
|
||||
For backward compatibility, the default value is true.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>outputDirectory</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
Sets the output directory relative to the root
|
||||
of the root directory of the assembly. For example,
|
||||
"log" will put the specified files in the log directory.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>includes</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
When <include> subelements are present, they define a set of
|
||||
files and directory to include. If none is present, then
|
||||
<includes> represents all valid values.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>excludes</name>
|
||||
<version>1.0.0+</version>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
When <exclude> subelements are present, they define a set of
|
||||
files and directory to exclude. If none is present, then
|
||||
<excludes> represents no exclusions.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>fileMode</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>0644</defaultValue>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Similar to a UNIX permission, sets the file mode of the files included.
|
||||
Format: (User)(Group)(Other) where each component is a sum of Read = 4,
|
||||
Write = 2, and Execute = 1. For example, the default value of 0644
|
||||
translates to User read-write, Group and Other read-only.
|
||||
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>directoryMode</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>0755</defaultValue>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Similar to a UNIX permission, sets the directory mode of the directories
|
||||
included. Format: (User)(Group)(Other) where each component is a sum of
|
||||
Read = 4, Write = 2, and Execute = 1. For example, the default value of
|
||||
0755 translates to User read-write, Group and Other read-only.
|
||||
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
<class>
|
||||
<name>FileSet</name>
|
||||
<version>1.0.0+</version>
|
||||
<superClass>SetBase</superClass>
|
||||
<description>
|
||||
A fileSet allows the inclusion of groups of files into the assembly.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>directory</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
Sets the absolute or relative location from the module's
|
||||
directory. For example, "src/main/bin" would select this
|
||||
subdirectory of the project in which this dependency is defined.
|
||||
</description>
|
||||
<required>true</required>
|
||||
</field>
|
||||
<field>
|
||||
<name>lineEnding</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Sets the line-endings of the files in this fileSet.
|
||||
Valid values:
|
||||
<ul>
|
||||
<li><b>"keep"</b> - Preserve all line endings</li>
|
||||
<li><b>"unix"</b> - Use Unix-style line endings</li>
|
||||
<li><b>"lf"</b> - Use a single line-feed line endings</li>
|
||||
<li><b>"dos"</b> - Use DOS-style line endings</li>
|
||||
<li><b>"crlf"</b> - Use Carraige-return, line-feed line endings</li>
|
||||
</ul>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
<class>
|
||||
<name>FileItem</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
A file allows individual file inclusion with the option to change
|
||||
the destination filename not supported by fileSets.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>source</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<required>true</required>
|
||||
<description>
|
||||
Sets the absolute or relative path from the module's directory
|
||||
of the file to be included in the assembly.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>outputDirectory</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<required>false</required>
|
||||
<description>
|
||||
Sets the output directory relative to the root
|
||||
of the root directory of the assembly. For example,
|
||||
"log" will put the specified files in the log directory.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>destName</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
Sets the destination filename in the outputDirectory.
|
||||
Default is the same name as the source's file.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>fileMode</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>0644</defaultValue>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Similar to a UNIX permission, sets the file mode of the files included.
|
||||
Format: (User)(Group)(Other) where each component is a sum of Read = 4,
|
||||
Write = 2, and Execute = 1. For example, the default value of 0644
|
||||
translates to User read-write, Group and Other read-only.
|
||||
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>lineEnding</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Sets the line-endings of the files in this file.
|
||||
Valid values are:
|
||||
<ul>
|
||||
<li><b>"keep"</b> - Preserve all line endings</li>
|
||||
<li><b>"unix"</b> - Use Unix-style line endings</li>
|
||||
<li><b>"lf"</b> - Use a single line-feed line endings</li>
|
||||
<li><b>"dos"</b> - Use DOS-style line endings</li>
|
||||
<li><b>"crlf"</b> - Use Carraige-return, line-feed line endings</li>
|
||||
</ul>
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>filtered</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>boolean</type>
|
||||
<description>
|
||||
Sets whether to determine if the file is filtered.
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
<class>
|
||||
<name>DependencySet</name>
|
||||
<version>1.0.0+</version>
|
||||
<superClass>SetBase</superClass>
|
||||
<description>
|
||||
A dependencySet allows inclusion and exclusion of project dependencies
|
||||
in the assembly.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>outputFileNameMapping</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>${artifactId}-${version}.${extension}</defaultValue>
|
||||
<description>
|
||||
Sets the mapping pattern for all dependencies included in this
|
||||
assembly. Default is ${artifactId}-${version}.${extension}.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>unpack</name>
|
||||
<type>boolean</type>
|
||||
<defaultValue>false</defaultValue>
|
||||
<description>
|
||||
If set to true, this property will unpack all dependencies
|
||||
into the specified output directory. When set to false
|
||||
dependencies will be includes as archives (jars). Can only unpack
|
||||
jar, zip, tar.gz, and tar.bz archives. Default value is false.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>scope</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>runtime</defaultValue>
|
||||
<required>true</required>
|
||||
<description>
|
||||
Sets the dependency scope for this dependencySet.
|
||||
Default scope value is "runtime".
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
<class>
|
||||
<name>ModuleSet</name>
|
||||
<description>
|
||||
<![CDATA[
|
||||
A moduleSet represent one or more project <module> present inside
|
||||
a project's pom.xml. This allows you to include sources or binaries
|
||||
belonging to a project's <modules>.
|
||||
|
||||
<br/><b>NOTE:</b> When using <moduleSets> from the command-line, it
|
||||
is required to pass first the package phase by doing: "mvn package
|
||||
assembly:assembly". This bug/issue is scheduled to be addressed by Maven 2.1.
|
||||
]]>
|
||||
</description>
|
||||
<version>1.0.0+</version>
|
||||
<fields>
|
||||
<field>
|
||||
<name>includeSubModules</name>
|
||||
<version>1.1.0</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
If set to false, the plugin will exclude sub-modules from processing in this ModuleSet.
|
||||
Otherwise, it will process all sub-modules, each subject to include/exclude rules.
|
||||
Default value is true.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>includes</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
<![CDATA[
|
||||
This is a list of <include/> subelements, each containing a
|
||||
module reference of the type groupId:artifactId. Modules matching
|
||||
these elements will be included in this set. If none is present,
|
||||
then <includes> represents all valid values.
|
||||
]]>
|
||||
</description>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
</field>
|
||||
<field>
|
||||
<name>excludes</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
<![CDATA[
|
||||
This is a list of <exclude/> subelements, each containing a
|
||||
module reference of the type groupId:artifactId. Modules matching
|
||||
these elements will be excluded from this set.
|
||||
]]>
|
||||
</description>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
</field>
|
||||
<field>
|
||||
<name>sources</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
When this is present, the plugin will include the source files of
|
||||
the included modules from this set in the resulting assembly.
|
||||
</description>
|
||||
<association>
|
||||
<type>ModuleSources</type>
|
||||
</association>
|
||||
</field>
|
||||
<field>
|
||||
<name>binaries</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
When this is present, the plugin will include the binaries of the
|
||||
included modules from this set in the resulting assembly.
|
||||
</description>
|
||||
<association>
|
||||
<type>ModuleBinaries</type>
|
||||
</association>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
<class>
|
||||
<name>ModuleSources</name>
|
||||
<version>1.0.0+</version>
|
||||
<superClass>SetBase</superClass>
|
||||
<description>
|
||||
Contains configuration options for including the source files of a
|
||||
project module in an assembly.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>fileSets</name>
|
||||
<version>1.1.0</version>
|
||||
<association>
|
||||
<type>FileSet</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which groups of files from each included module to include in the assembly. A
|
||||
fileSet is specified by providing one or more of <fileSet> subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>includeModuleDirectory</name>
|
||||
<version>1.1.0</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies whether the module's finalName should be prepended to the outputDirectory
|
||||
values of any fileSets applied to it. Default value is true.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>excludeSubModuleDirectories</name>
|
||||
<version>1.1.0</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies whether sub-module directories below the current module should be excluded
|
||||
from fileSets applied to that module. This might be useful if you only mean to copy
|
||||
the sources for the exact module list matched by this ModuleSet, ignoring (or processing
|
||||
separately) the modules which exist in directories below the current one.
|
||||
Default value is true.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>outputDirectoryMapping</name>
|
||||
<version>1.1.0</version>
|
||||
<type>String</type>
|
||||
<defaultValue>${artifactId}</defaultValue>
|
||||
<description>
|
||||
Sets the mapping pattern for all module base-directories included in this assembly.
|
||||
NOTE: This field is only used if includeModuleDirectory == true.
|
||||
Default is the module's ${artifactId}.
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
<class>
|
||||
<name>ModuleBinaries</name>
|
||||
<version>1.0.0+</version>
|
||||
<superClass>SetBase</superClass>
|
||||
<description>
|
||||
Contains configuration options for including the binary files of a
|
||||
project module in an assembly.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>includeDependencies</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>false</defaultValue>
|
||||
<description>
|
||||
If set to true, the plugin will include the direct and transitive dependencies of
|
||||
of the project modules included here. Otherwise, it will only include the module
|
||||
packages only. Default value is false.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>dependencySets</name>
|
||||
<version>1.1.0</version>
|
||||
<association>
|
||||
<type>DependencySet</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies which dependencies of the module to include in the assembly. A
|
||||
dependencySet is specified by providing one or more of
|
||||
<dependencySet> subelements.
|
||||
]]>
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>unpack</name>
|
||||
<type>boolean</type>
|
||||
<defaultValue>true</defaultValue>
|
||||
<description>
|
||||
If set to true, this property will unpack all module packages
|
||||
into the specified output directory. When set to false
|
||||
module packages will be included as archives (jars).
|
||||
Default value is true.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>outputFileNameMapping</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<defaultValue>${artifactId}-${version}.${extension}</defaultValue>
|
||||
<description>
|
||||
Sets the mapping pattern for all dependencies included
|
||||
in this assembly.
|
||||
Default is ${artifactId}-${version}.${extension}.
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
|
||||
<class>
|
||||
<name>Repository</name>
|
||||
<version>1.0.0+</version>
|
||||
<superClass>SetBase</superClass>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Defines a Maven repository to be included in the assembly. The artifacts
|
||||
available to be included in a repository are your project's dependency
|
||||
artifacts. The repository created contains the needed metadata entries
|
||||
and also contains both sha1 and md5 checksums. This is useful for creating
|
||||
archives which will be deployed to internal repositories.
|
||||
|
||||
<br/><b>NOTE:</b> Currently, only artifacts from the central repository
|
||||
are allowed.
|
||||
]]>
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>includeMetadata</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>boolean</type>
|
||||
<defaultValue>false</defaultValue>
|
||||
<description>
|
||||
If set to true, this property will trigger the creation of repository
|
||||
metadata which will allow the repository to be used as a functional remote
|
||||
repository. Default value is false.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>groupVersionAlignments</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
<![CDATA[
|
||||
Specifies that you want to align a group of artifacts to a specified
|
||||
version. A groupVersionAlignment is specified by providing one or
|
||||
more of <groupVersionAlignment> subelements.
|
||||
]]>
|
||||
</description>
|
||||
<association>
|
||||
<type>GroupVersionAlignment</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
</field>
|
||||
<field>
|
||||
<name>scope</name>
|
||||
<version>1.1.0</version>
|
||||
<type>String</type>
|
||||
<defaultValue>runtime</defaultValue>
|
||||
<required>true</required>
|
||||
<description>
|
||||
Specifies the scope for artifacts included in this repository.
|
||||
Default scope value is "runtime".
|
||||
</description>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
<class>
|
||||
<name>GroupVersionAlignment</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
Allows a group of artifacts to be aligned to a specified version.
|
||||
</description>
|
||||
<fields>
|
||||
<field>
|
||||
<name>id</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
The groupId of the artifacts for which you want to align the
|
||||
versions.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>version</name>
|
||||
<version>1.0.0+</version>
|
||||
<type>String</type>
|
||||
<description>
|
||||
The version you want to align this group to.
|
||||
</description>
|
||||
</field>
|
||||
<field>
|
||||
<name>excludes</name>
|
||||
<version>1.0.0+</version>
|
||||
<description>
|
||||
<![CDATA[
|
||||
When <exclude> subelements are present, they define the
|
||||
artifactIds of the artifacts to exclude. If none is present, then
|
||||
<excludes> represents no exclusions. An exclude is specified
|
||||
by providing one or more of <exclude> subelements.
|
||||
]]>
|
||||
</description>
|
||||
<association>
|
||||
<type>String</type>
|
||||
<multiplicity>*</multiplicity>
|
||||
</association>
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
</classes>
|
||||
</model>
|
Loading…
Reference in New Issue