You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/10/03 05:54:18 UTC
svn commit: r293227 - in /maven/components/trunk:
maven-artifact/src/main/resources/META-INF/plexus/
maven-core-it-verifier/src/main/java/org/apache/maven/it/ maven-core-it/
maven-core-it/it0077/ maven-core-it/it0077/sub1/
maven-core-it/it0077/sub1/src...
Author: brett
Date: Sun Oct 2 20:53:48 2005
New Revision: 293227
URL: http://svn.apache.org/viewcvs?rev=293227&view=rev
Log:
PR: MNG-932
add a goal for creating a jar from the test sources
Added:
maven/components/trunk/maven-core-it/it0077/ (with props)
maven/components/trunk/maven-core-it/it0077/cli-options.txt (with props)
maven/components/trunk/maven-core-it/it0077/expected-results.txt (with props)
maven/components/trunk/maven-core-it/it0077/goals.txt (with props)
maven/components/trunk/maven-core-it/it0077/pom.xml (with props)
maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt (with props)
maven/components/trunk/maven-core-it/it0077/settings.xml (with props)
maven/components/trunk/maven-core-it/it0077/sub1/ (with props)
maven/components/trunk/maven-core-it/it0077/sub1/pom.xml (with props)
maven/components/trunk/maven-core-it/it0077/sub1/src/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/
maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java (with props)
maven/components/trunk/maven-core-it/it0077/sub1/src/test/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/
maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java (with props)
maven/components/trunk/maven-core-it/it0077/sub2/ (with props)
maven/components/trunk/maven-core-it/it0077/sub2/pom.xml (with props)
maven/components/trunk/maven-core-it/it0077/sub2/src/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/
maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java (with props)
maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java (with props)
maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java (with props)
Modified:
maven/components/trunk/maven-artifact/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
maven/components/trunk/maven-core-it/README.txt
maven/components/trunk/maven-core-it/integration-tests.txt
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java
Modified: maven/components/trunk/maven-artifact/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/resources/META-INF/plexus/components.xml?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-artifact/src/main/resources/META-INF/plexus/components.xml Sun Oct 2 20:53:48 2005
@@ -52,7 +52,7 @@
<role-hint>test-jar</role-hint>
<implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
<configuration>
- <classifier>test</classifier>
+ <classifier>tests</classifier>
<extension>jar</extension>
<type>test-jar</type>
<packaging>jar</packaging>
Modified: maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java (original)
+++ maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java Sun Oct 2 20:53:48 2005
@@ -308,6 +308,11 @@
ext = "jar";
classifier = "it";
}
+ if ( "test-jar".equals( a[3] ) )
+ {
+ ext = "jar";
+ classifier = "tests";
+ }
String repositoryPath;
if ( "legacy".equals( localRepoLayout ) )
Modified: maven/components/trunk/maven-core-it/README.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Sun Oct 2 20:53:48 2005
@@ -204,6 +204,8 @@
unless they are referenced by groupId/artifactId within the plugins
section of a pom.
+it0077: Test test jar attachment.
+
-------------------------------------------------------------------------------
- generated sources
Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Sun Oct 2 20:53:48 2005
@@ -1,3 +1,4 @@
+it0077
it0076
it0075
it0074
Propchange: maven/components/trunk/maven-core-it/it0077/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Oct 2 20:53:48 2005
@@ -0,0 +1,2 @@
+log.txt
+target
Added: maven/components/trunk/maven-core-it/it0077/cli-options.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/cli-options.txt?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/cli-options.txt (added)
+++ maven/components/trunk/maven-core-it/it0077/cli-options.txt Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+--settings settings.xml
Propchange: maven/components/trunk/maven-core-it/it0077/cli-options.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/cli-options.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/expected-results.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/expected-results.txt?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0077/expected-results.txt Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+${artifact:org.apache.maven.it:maven-it0077-sub1:1.0:test-jar}
Propchange: maven/components/trunk/maven-core-it/it0077/expected-results.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/expected-results.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/goals.txt?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0077/goals.txt Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+install
Propchange: maven/components/trunk/maven-core-it/it0077/goals.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/goals.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/pom.xml?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0077/pom.xml Sun Oct 2 20:53:48 2005
@@ -0,0 +1,28 @@
+<model>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.it</groupId>
+ <artifactId>maven-core-it0077</artifactId>
+ <packaging>pom</packaging>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <type>jar</type>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <modules>
+ <module>sub1</module>
+ <module>sub2</module>
+ </modules>
+
+ <repositories>
+ <repository>
+ <id>test</id>
+ <url>file:target/test-repo</url>
+ </repository>
+ </repositories>
+</model>
Propchange: maven/components/trunk/maven-core-it/it0077/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt (added)
+++ maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+rm ${artifact:org.apache.maven.it:maven-it0077-sub1:1.0:test-jar}
Propchange: maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/prebuild-hook.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/settings.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/settings.xml?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/settings.xml (added)
+++ maven/components/trunk/maven-core-it/it0077/settings.xml Sun Oct 2 20:53:48 2005
@@ -0,0 +1,4 @@
+<settings>
+ <localRepository>file:../target/local-repo</localRepository>
+ <usePluginRegistry>false</usePluginRegistry>
+</settings>
Propchange: maven/components/trunk/maven-core-it/it0077/settings.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/settings.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+target
Added: maven/components/trunk/maven-core-it/it0077/sub1/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/sub1/pom.xml?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/sub1/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0077/sub1/pom.xml Sun Oct 2 20:53:48 2005
@@ -0,0 +1,41 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.it</groupId>
+ <artifactId>maven-core-it0077</artifactId>
+ <version>1.0</version>
+ </parent>
+ <artifactId>maven-it0077-sub1</artifactId>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <distributionManagement>
+ <repository>
+ <id>central</id>
+ <name>Test Repository</name>
+ <url>file:../target/test-repo</url>
+ </repository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java (added)
+++ maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java Sun Oct 2 20:53:48 2005
@@ -0,0 +1,16 @@
+package org.apache.maven.it0077;
+
+public class Person
+{
+ private String name;
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+}
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/src/main/java/org/apache/maven/it0077/Person.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java (added)
+++ maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java Sun Oct 2 20:53:48 2005
@@ -0,0 +1,16 @@
+package org.apache.maven.it0077;
+
+import junit.framework.TestCase;
+
+public class PersonTest
+ extends TestCase
+{
+ public void testPerson()
+ {
+ Person person = new Person();
+
+ person.setName( "foo" );
+
+ assertEquals( "foo", person.getName() );
+ }
+}
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/sub1/src/test/java/org/apache/maven/it0077/PersonTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/components/trunk/maven-core-it/it0077/sub2/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Oct 2 20:53:48 2005
@@ -0,0 +1 @@
+target
Added: maven/components/trunk/maven-core-it/it0077/sub2/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/sub2/pom.xml?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/sub2/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0077/sub2/pom.xml Sun Oct 2 20:53:48 2005
@@ -0,0 +1,26 @@
+<model>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.it</groupId>
+ <artifactId>maven-core-it0077</artifactId>
+ <version>1.0</version>
+ </parent>
+ <artifactId>maven-it0077-sub2</artifactId>
+ <version>1.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.it</groupId>
+ <artifactId>maven-it0077-sub1</artifactId>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.it</groupId>
+ <artifactId>maven-it0077-sub1</artifactId>
+ <type>test-jar</type>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</model>
Propchange: maven/components/trunk/maven-core-it/it0077/sub2/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/sub2/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java (added)
+++ maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java Sun Oct 2 20:53:48 2005
@@ -0,0 +1,8 @@
+package org.apache.maven.it0077;
+
+import junit.framework.TestCase;
+
+public class PersonTwoTest
+ extends PersonTest
+{
+}
Propchange: maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Sun Oct 2 20:53:48 2005
@@ -265,7 +265,11 @@
MavenProject ref = (MavenProject) project.getProjectReferences().get( refId );
if ( ref != null && ref.getArtifact() != null )
{
- pluginArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
+ // TODO: if not matching, we should get the correct artifact from that project (attached)
+ if ( ref.getArtifact().getDependencyConflictId().equals( pluginArtifact.getDependencyConflictId() ) )
+ {
+ pluginArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
+ }
}
}
Added: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java (added)
+++ maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java Sun Oct 2 20:53:48 2005
@@ -0,0 +1,141 @@
+package org.apache.maven.plugin.jar;
+
+/*
+ * 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.archiver.MavenArchiveConfiguration;
+import org.apache.maven.archiver.MavenArchiver;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+
+/**
+ * Base class for creating a jar from project classes.
+ *
+ * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractJarMojo
+ extends AbstractMojo
+{
+
+ private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"};
+
+ private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"};
+
+ /**
+ * Directory containing the generated JAR.
+ *
+ * @parameter expression="${project.build.directory}"
+ * @required
+ * @readonly
+ *
+ * @todo Change type to File
+ */
+ private String basedir;
+
+ /**
+ * Name of the generated JAR.
+ *
+ * @parameter alias="jarName" expression="${project.build.finalName}"
+ * @required
+ */
+ private String finalName;
+
+ /**
+ * The maven project.
+ *
+ * @parameter expression="${project}"
+ * @required
+ * @readonly
+ */
+ private MavenProject project;
+
+ /**
+ * The maven archiver to use.
+ *
+ * @parameter
+ */
+ private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
+
+ /**
+ * Return the specific output directory to serve as the root for the archive.
+ */
+ protected abstract File getOutputDirectory();
+
+ protected final MavenProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * Overload this to produce a test-jar, for example.
+ */
+ protected String getClassifier()
+ {
+ return "";
+ }
+
+ /**
+ * Generates the JAR.
+ *
+ * @todo Add license files in META-INF directory.
+ */
+ public File createArchive()
+ throws MojoExecutionException
+ {
+ String classifier = getClassifier();
+
+ if ( classifier == null )
+ {
+ classifier = "";
+ }
+ else if ( classifier.trim().length() > 0 && !classifier.startsWith( "-" ) )
+ {
+ classifier = "-" + classifier;
+ }
+
+ File jarFile = new File( basedir, finalName + classifier + ".jar" );
+
+ MavenArchiver archiver = new MavenArchiver();
+
+ archiver.setOutputFile( jarFile );
+
+ try
+ {
+ File contentDirectory = getOutputDirectory();
+ if ( !contentDirectory.exists() )
+ {
+ getLog().warn( "JAR will be empty - no content was marked for inclusion!" );
+ }
+ else
+ {
+ archiver.getArchiver().addDirectory( contentDirectory, DEFAULT_INCLUDES, DEFAULT_EXCLUDES );
+ }
+
+ archiver.createArchive( project, archive );
+
+ return jarFile;
+ }
+ catch ( Exception e )
+ {
+ // TODO: improve error handling
+ throw new MojoExecutionException( "Error assembling JAR", e );
+ }
+ }
+}
Propchange: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java?rev=293227&r1=293226&r2=293227&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java Sun Oct 2 20:53:48 2005
@@ -16,11 +16,7 @@
* limitations under the License.
*/
-import org.apache.maven.archiver.MavenArchiveConfiguration;
-import org.apache.maven.archiver.MavenArchiver;
-import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
import java.io.File;
@@ -31,35 +27,11 @@
* @version $Id$
* @goal jar
* @phase package
- * @description build a jar
+ * @requiresProject
*/
public class JarMojo
- extends AbstractMojo
+ extends AbstractJarMojo
{
-
- private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"};
-
- private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"};
-
- /**
- * Directory containing the generated JAR.
- *
- * @parameter expression="${project.build.directory}"
- * @required
- * @readonly
- *
- * @todo Change type to File
- */
- private String basedir;
-
- /**
- * Name of the generated JAR.
- *
- * @parameter alias="jarName" expression="${project.build.finalName}"
- * @required
- */
- private String finalName;
-
/**
* Directory containing the classes.
*
@@ -67,23 +39,7 @@
* @required
* @readonly
*/
- private String outputDirectory;
-
- /**
- * The maven project.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
- */
- private MavenProject project;
-
- /**
- * The maven archiver to use.
- *
- * @parameter
- */
- private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
+ private File outputDirectory;
/**
* Generates the JAR.
@@ -93,32 +49,16 @@
public void execute()
throws MojoExecutionException
{
- File jarFile = new File( basedir, finalName + ".jar" );
-
- MavenArchiver archiver = new MavenArchiver();
-
- archiver.setOutputFile( jarFile );
-
- try
- {
- File contentDirectory = new File( outputDirectory );
- if ( !contentDirectory.exists() )
- {
- getLog().warn( "JAR will be empty - no content was marked for inclusion!" );
- }
- else
- {
- archiver.getArchiver().addDirectory( contentDirectory, DEFAULT_INCLUDES, DEFAULT_EXCLUDES );
- }
+ File jarFile = createArchive();
+
+ getProject().getArtifact().setFile( jarFile );
+ }
- archiver.createArchive( project, archive );
-
- project.getArtifact().setFile( jarFile );
- }
- catch ( Exception e )
- {
- // TODO: improve error handling
- throw new MojoExecutionException( "Error assembling JAR", e );
- }
+ /**
+ * Return the main classes directory, so it's used as the root of the jar.
+ */
+ protected File getOutputDirectory()
+ {
+ return outputDirectory;
}
}
Added: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java?rev=293227&view=auto
==============================================================================
--- maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java (added)
+++ maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java Sun Oct 2 20:53:48 2005
@@ -0,0 +1,77 @@
+package org.apache.maven.plugin.jar;
+
+/*
+ * 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.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProjectHelper;
+
+import java.io.File;
+
+/**
+ * Build a JAR of the test classes for the current project.
+ *
+ * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @goal test-jar
+ * @phase package
+ * @requiresProject
+ */
+public class TestJarMojo
+ extends AbstractJarMojo
+{
+ /**
+ * Directory containing the test classes.
+ *
+ * @parameter expression="${project.build.testOutputDirectory}"
+ * @required
+ * @readonly
+ */
+ private File testOutputDirectory;
+
+ /**
+ * @component role="org.apache.maven.project.MavenProjectHelper"
+ */
+ private MavenProjectHelper projectHelper;
+
+ protected String getClassifier()
+ {
+ return "tests";
+ }
+
+ /**
+ * Generates the JAR.
+ *
+ * @todo Add license files in META-INF directory.
+ */
+ public void execute()
+ throws MojoExecutionException
+ {
+ getLog().info( "Creating a jar containing the test classes for this project." );
+
+ File jarFile = createArchive();
+
+ projectHelper.attachArtifact( getProject(), "jar", "tests", jarFile );
+ }
+
+ /**
+ * Return the test-classes directory, to serve as the root of the tests jar.
+ */
+ protected File getOutputDirectory()
+ {
+ return testOutputDirectory;
+ }
+}
Propchange: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/TestJarMojo.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org