You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2009/11/17 08:19:55 UTC

[jira] Updated: (SUREFIRE-504) own classes and test-classes at the end of test classpath

     [ http://jira.codehaus.org/browse/SUREFIRE-504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brett Porter updated SUREFIRE-504:
----------------------------------

    Fix Version/s:     (was: 2.5)

unset fix-for on duplicate

> own classes and test-classes at the end of test classpath
> ---------------------------------------------------------
>
>                 Key: SUREFIRE-504
>                 URL: http://jira.codehaus.org/browse/SUREFIRE-504
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: plugin
>    Affects Versions: 2.4
>         Environment: Maven 2.0.9, Windows XP
>            Reporter: Torsten Reinhard
>            Assignee: Paul Gier
>
> Own classes and test-classes may be added to the end of the classpath:
> [DEBUG] Adding to surefire test classpath: 
> s:\mavenrepo\org\apache\maven\surefire\surefire-api\2.4\surefire-api-2.4.jar
> [DEBUG] Test Classpath :
> [DEBUG]   s:\mavenrepo\log4j\log4j\1.2.13\log4j-1.2.13.jar
> ...
> [DEBUG]   s:\mavenrepo\org\apache\xmlsec\1.4.1\xmlsec-1.4.1.jar
> [DEBUG]   S:\pdv_cms\GDCAMS\src\pip\gdcams-pip-itest\target\classes
> [DEBUG]   S:\pdv_cms\GDCAMS\src\pip\gdcams-pip-itest\target\test-classes
> This may happen, when you add the following terms to a parent pom.xml:
>         <properties> 
>           <target.dir>target</target.dir>
>         </properties> 
>         <build>
>                 ....
>                 <!-- special (output)Directory for Eclipse -->
>                 <!-- see 
> http://docs.codehaus.org/display/M2ECLIPSE/Project+FAQ#ProjectFAQ-HowtoconfigureMavenprojecttouseseparateoutputfoldersinEclipse--
> >
>  
> <outputDirectory>${project.basedir}/${target.dir}/classes</outputDirectory>
>  
> <testOutputDirectory>${project.basedir}/${target.dir}/test-classes</testOutputDirectory> 
>                 ....
>         </build>
> <profiles>
>     <profile>
>       <id>eclipse-folders</id>
>       <properties>
>         <target.dir>target-eclipse</target.dir>
>       </properties>
>     </profile>
> </profiles>
> The reason for that is:
> SurefirePlugin#constructSurefireBooter changes the classpath by doing:
> ...
>         getLog().debug( "Test Classpath :" );
>         // Check if we need to add configured classes/test classes directories here.
>         // If they are configured, we should remove the default to avoid conflicts.
>         if ( !project.getBuild().getOutputDirectory().equals( classesDirectory.getAbsolutePath() ) )
>         {
>             classpathElements.remove( project.getBuild().getOutputDirectory() );
>             classpathElements.add( classesDirectory.getAbsolutePath() );
>         }
>         if ( !project.getBuild().getTestOutputDirectory().equals( testClassesDirectory.getAbsolutePath() ) )
>         {
>             classpathElements.remove( project.getBuild().getTestOutputDirectory() );
>             classpathElements.add( testClassesDirectory.getAbsolutePath() );
>         }
> ...
> project.getBuild().getOutputDirectory() is like "${basedir}/target/classes"
> classesDirectory.getAbsolutePath() is: "${basedir}\target\classes"
> So i think here a 2 bugs:
> (1) files/directories shouldn´t be compared just as String.equals(....) - using File.compareTo may be a better solution
> (2) an Element of classpathElements shouldn´t be removed and added to the end of the ArrayList, it should be replaced at the same position.

-- 
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