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, pg...@apache.org 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-directories-MCOMPILER-91/ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/pom.xml (with props) maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/src/ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/src/my-classes/ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/src/my-classes/java/ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/src/my-classes/java/MyTest.java (with props) maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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-directories-MCOMPILER-91/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/pom.xml?rev=753302&view=auto ============================================================================== --- maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/pom.xml (added) +++ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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-directories-MCOMPILER-91/pom.xml ------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/pom.xml ------------------------------------------------------------------------------
   svn:keywords = Author Date Id Revision

Added: maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/src/my-classes/java/MyTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/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-directories-MCOMPILER-91/src/my-classes/java/MyTest.java (added) +++ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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-directories-MCOMPILER-91/src/my-classes/java/MyTest.java ------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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-directories-MCOMPILER-91/verify.bsh URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/verify.bsh?rev=753302&view=auto ============================================================================== --- maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-MCOMPILER-91/verify.bsh (added) +++ maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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-directories-MCOMPILER-91/verify.bsh ------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: maven/plugins/trunk/maven-compiler-plugin/src/it/alt-src-output-directories-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/src/main/java/org/apache/maven/plugin/CompilerMojo.java?rev=753302&r1=753301&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/src/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: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to