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