You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Torsten Reinhard (JIRA)" <ji...@codehaus.org> on 2008/07/17 11:47:26 UTC

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

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


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

       

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

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ 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

       

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

Posted by "Paul Gier (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/SUREFIRE-504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Gier closed SUREFIRE-504.
------------------------------

    Resolution: Duplicate

Duplicate of SUREFIRE-502 

> 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
>             Fix For: 2.5
>
>
> 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

       

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

Posted by "Paul Gier (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/SUREFIRE-504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Gier updated SUREFIRE-504:
-------------------------------

         Assignee: Paul Gier
    Fix Version/s: 2.5

> 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
>             Fix For: 2.5
>
>
> 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