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="[EMAIL PROTECTED]">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="[EMAIL PROTECTED]">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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]