maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Möller (JIRA) <j...@codehaus.org>
Subject [jira] Created: (MDEP-182) Add exclude*, parameters to copy mojo (analogous to copy-dependencies mojo)
Date Fri, 12 Sep 2008 09:48:48 GMT
Add exclude*,  parameters to copy mojo (analogous to copy-dependencies mojo)
----------------------------------------------------------------------------

                 Key: MDEP-182
                 URL: http://jira.codehaus.org/browse/MDEP-182
             Project: Maven 2.x Dependency Plugin
          Issue Type: New Feature
          Components: copy
    Affects Versions: 2.1
            Reporter: Thorsten Möller
            Assignee: Brian Fox


Today I came around a use case that I miss in the copy goal/mojo of the dependency plugin.
Currently, it is not possible (at least I could not find any documentation) to resolve transitive
dependencies when copying an artifact nor to specify whether transitive dependencies should
be included or excluded. This should be extended analogous to the copy-dependencies mojo.

Example: Say we want to copy Retrotranslator including its dependencies. Currently we would
have to use the following declarations

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<executions>
		<execution>
			<id>copy</id>
			<phase>package</phase>
			<goals>
				<goal>copy</goal>
			</goals>
			<configuration>
				<artifactItems>
					<artifactItem>
						<groupId>net.sf.retrotranslator</groupId>
						<artifactId>retrotranslator-runtime</artifactId>
						<version>${retrotranslator-version}</version>
						<type>jar</type>
						<outputDirectory>${project.build.directory}</outputDirectory>
					</artifactItem>
					<!-- Transitive dependency of Retrotranslator. Unfortunately, not automatically included.
-->
					<artifactItem>
						<groupId>backport-util-concurrent</groupId>
						<artifactId>backport-util-concurrent</artifactId>
						<version>3.1</version>
						<type>jar</type>
						<outputDirectory>${project.build.directory}</outputDirectory>
					</artifactItem>
				</artifactItems>
			</configuration>
		</execution>
	</executions>
</plugin>

This has the downside that all dependencies must be explicitly listed and artifact versions
must be kept consistent, which is "unwished maintenance work". More convenient would be a
declaration as follows

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<executions>
		<execution>
			<id>copy</id>
			<phase>package</phase>
			<goals>
				<goal>copy</goal>
			</goals>
			<configuration>
				<artifactItems>
					<artifactItem>
						<groupId>net.sf.retrotranslator</groupId>
						<artifactId>retrotranslator-runtime</artifactId>
						<version>${retrotranslator-version}</version>
						<type>jar</type>
						<outputDirectory>${project.build.directory}</outputDirectory>

						<!-- Force to include *all* transitive dependencies. They should be copied to the
same output directory. -->
						<excludeTransitive>false</excludeTransitive>

					</artifactItem>
				</artifactItems>
			</configuration>
		</execution>
	</executions>
</plugin>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message