Why doesn't the buildhelper plugin work for this use case? That lets you attach many source folders.
-----Original Message----- From: Paul Gier [mailto:[email protected]] Sent: Friday, March 13, 2009 2:58 PM To: Maven Developers List Subject: Re: svn commit: r753302 - in /maven/plugins/trunk/maven-compiler-plugin/src: it/alt-src-output-directories-MCOMPILER-91/ it/alt-src-output-directories-MCOMPILER-91/src/ it/alt-src-output-directories-MCOMPILER-91/src/my-classes/ it/alt-src-output-directori Do you have an issue with it in both the compile and test-compile mojos? Or is the test-compile mojo ok? The test-compile mojo is where I need it because I have multiple sets of test classes that require different compile parameters. Jason van Zyl wrote: > -1 > > I don't want people to start abusing this and directly using multiple > source directories. This will get abused so fast and is only required by > people who have messed up systems. > > On 13-Mar-09, at 8:37 AM, [email protected] wrote: > >> Author: pgier >> Date: Fri Mar 13 15:37:13 2009 >> New Revision: 753302 >> >> URL: http://svn.apache.org/viewvc?rev=753302&view=rev >> Log: >> [MCOMPILER-91] Allow source and output directories to be configured. >> Patch from Peter Janes (peterj). >> >> Added: >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/ >> >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> (with props) >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/ >> >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/ >> >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/ >> >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> (with props) >> >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> (with props) >> Modified: >> >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/CompilerMojo.java >> >> >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/TestCompilerMojo.java >> >> >> Added: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> >> URL: >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/s rc/it/alt-src-output-directories-MCOMPILER-91/pom.xml?rev=753302&view=au to >> >> ======================================================================== ====== >> >> --- >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> (added) >> +++ >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> Fri Mar 13 15:37:13 2009 >> @@ -0,0 +1,82 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> +<!-- >> + ~ Licensed to the Apache Software Foundation (ASF) under one >> + ~ or more contributor license agreements. See the NOTICE file >> + ~ distributed with this work for additional information >> + ~ regarding copyright ownership. The ASF licenses this file >> + ~ to you under the Apache License, Version 2.0 (the >> + ~ "License"); you may not use this file except in compliance >> + ~ with the License. You may obtain a copy of the License at >> + ~ >> + ~ http://www.apache.org/licenses/LICENSE-2.0 >> + ~ >> + ~ Unless required by applicable law or agreed to in writing, >> + ~ software distributed under the License is distributed on an >> + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + ~ KIND, either express or implied. See the License for the >> + ~ specific language governing permissions and limitations >> + ~ under the License. >> + --> >> + >> +<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.plugins.compiler</groupId> >> + <artifactId>altconfig</artifactId> >> + <version>1.0-SNAPSHOT</version> >> + >> + <name>Test for alternative source/target configuration</name> >> + >> + <properties> >> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >> + </properties> >> + >> + <dependencies> >> + <dependency> >> + <groupId>junit</groupId> >> + <artifactId>junit</artifactId> >> + <version>3.8.2</version> >> + </dependency> >> + </dependencies> >> + >> + <build> >> + <plugins> >> + <plugin> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-compiler-plugin</artifactId> >> + <version>@pom.version@</version> >> + <executions> >> + <execution> >> + <id>my-classes</id> >> + <phase>compile</phase> >> + <goals> >> + <goal>compile</goal> >> + </goals> >> + <configuration> >> + <compileSourceRoots> >> + >> <compileSourceRoot>src/my-classes/java</compileSourceRoot> >> + </compileSourceRoots> >> + <outputDirectory>target/my-classes</outputDirectory> >> + </configuration> >> + </execution> >> + <execution> >> + <id>my-test-classes</id> >> + <phase>test-compile</phase> >> + <goals> >> + <goal>testCompile</goal> >> + </goals> >> + <configuration> >> + <compileSourceRoots> >> + >> <compileSourceRoot>src/my-classes/java</compileSourceRoot> >> + </compileSourceRoots> >> + <outputDirectory>target/my-test-classes</outputDirectory> >> + </configuration> >> + </execution> >> + </executions> >> + </plugin> >> + </plugins> >> + </build> >> + >> +</project> >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> >> ------------------------------------------------------------------------ ------ >> >> svn:eol-style = native >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/pom.xml >> >> ------------------------------------------------------------------------ ------ >> >> svn:keywords = Author Date Id Revision >> >> Added: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> >> URL: >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/s rc/it/alt-src-output-directories-MCOMPILER-91/src/my-classes/java/MyTest .java?rev=753302&view=auto >> >> ======================================================================== ====== >> >> --- >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> (added) >> +++ >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> Fri Mar 13 15:37:13 2009 >> @@ -0,0 +1,7 @@ >> +import junit.framework.TestCase; >> + >> +public class MyTest >> + extends TestCase >> +{ >> + >> +} >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> >> ------------------------------------------------------------------------ ------ >> >> svn:eol-style = native >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/src/my-classes/java/MyTest.java >> >> ------------------------------------------------------------------------ ------ >> >> svn:keywords = Author Date Id Revision >> >> Added: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> >> URL: >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/s rc/it/alt-src-output-directories-MCOMPILER-91/verify.bsh?rev=753302&view =auto >> >> ======================================================================== ====== >> >> --- >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> (added) >> +++ >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> Fri Mar 13 15:37:13 2009 >> @@ -0,0 +1,24 @@ >> +import java.io.*; >> + >> +try >> +{ >> + File outputClasses = new File( basedir, >> "target/my-classes/MyTest.class" ); >> + if ( !outputClasses.isFile() ) >> + { >> + System.out.println( "Test class not existent: " + >> outputClasses ); >> + return false; >> + } >> + File outputTestClasses = new File( basedir, >> "target/my-test-classes/MyTest.class" ); >> + if ( !outputTestClasses.isFile() ) >> + { >> + System.out.println( "Test class not existent: " + >> outputTestClasses ); >> + return false; >> + } >> +} >> +catch( Throwable t ) >> +{ >> + t.printStackTrace(); >> + return false; >> +} >> + >> +return true; >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> >> ------------------------------------------------------------------------ ------ >> >> svn:eol-style = native >> >> Propchange: >> maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-director ies-MCOMPILER-91/verify.bsh >> >> ------------------------------------------------------------------------ ------ >> >> svn:keywords = Author Date Id Revision >> >> Modified: >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/CompilerMojo.java >> >> URL: >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/s rc/main/java/org/apache/maven/plugin/CompilerMojo.java?rev=753302&r1=753 301&r2=753302&view=diff >> >> ======================================================================== ====== >> >> --- >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/CompilerMojo.java >> (original) >> +++ >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/CompilerMojo.java >> Fri Mar 13 15:37:13 2009 >> @@ -45,11 +45,18 @@ >> extends AbstractCompilerMojo >> { >> /** >> + * The default source directories containing the sources to be >> compiled. >> + * >> + * @parameter default-value="${project.compileSourceRoots}" >> + * >> + */ >> + private List defaultCompileSourceRoots; >> + >> + /** >> * The source directories containing the sources to be compiled. >> * >> - * @parameter expression="${project.compileSourceRoots}" >> - * @required >> - * @readonly >> + * @parameter >> + * >> */ >> private List compileSourceRoots; >> >> @@ -65,9 +72,8 @@ >> /** >> * The directory for compiled classes. >> * >> - * @parameter expression="${project.build.outputDirectory}" >> + * @parameter default-value="${project.build.outputDirectory}" >> * @required >> - * @readonly >> */ >> private File outputDirectory; >> >> @@ -97,6 +103,10 @@ >> >> protected List getCompileSourceRoots() >> { >> + if( compileSourceRoots == null ) >> + { >> + compileSourceRoots = defaultCompileSourceRoots; >> + } >> return compileSourceRoots; >> } >> >> >> Modified: >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/TestCompilerMojo.java >> >> URL: >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/s rc/main/java/org/apache/maven/plugin/TestCompilerMojo.java?rev=753302&r1 =753301&r2=753302&view=diff >> >> ======================================================================== ====== >> >> --- >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/TestCompilerMojo.java >> (original) >> +++ >> maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven /plugin/TestCompilerMojo.java >> Fri Mar 13 15:37:13 2009 >> @@ -52,11 +52,18 @@ >> private boolean skip; >> >> /** >> - * The source directories containing the test-source to be compiled. >> + * The default source directories containing the test-source to >> be compiled. >> * >> - * @parameter expression="${project.testCompileSourceRoots}" >> - * @required >> + * @parameter default-value="${project.testCompileSourceRoots}" >> * @readonly >> + * @required >> + */ >> + private List defaultCompileSourceRoots; >> + >> + /** >> + * The source directories containing the test-source to be compiled. >> + * >> + * @parameter >> */ >> private List compileSourceRoots; >> >> @@ -72,9 +79,8 @@ >> /** >> * The directory where compiled test classes go. >> * >> - * @parameter expression="${project.build.testOutputDirectory}" >> + * @parameter default-value="${project.build.testOutputDirectory}" >> * @required >> - * @readonly >> */ >> private File outputDirectory; >> >> @@ -149,6 +155,10 @@ >> >> protected List getCompileSourceRoots() >> { >> + if( compileSourceRoots == null ) >> + { >> + compileSourceRoots = defaultCompileSourceRoots; >> + } >> return compileSourceRoots; >> } >> >> >> > > Thanks, > > Jason > > ---------------------------------------------------------- > Jason van Zyl > Founder, Apache Maven > http://twitter.com/jvanzyl > ---------------------------------------------------------- > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
