You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Dhananjay Nene <dh...@cash-tech.com> on 2005/09/26 10:37:30 UTC

Nearly empty classpath while executing tests with maven2 beta 1

I am unable to figure out why when I run m2 with a test target the
tests are executed with a nearly empty classpath. I have setup all my
dependencies with the appropriate compile or test scope but these
are are not being reflected in the classpath during execution. e.g. I
added the following to my test case :

System.out.println("--------------------------------------------------------------------");
System.out.println(System.getProperty("java.class.path"));
System.out.println("--------------------------------------------------------------------");

Here's what I get in the output
--------------------------------------------------------------------
/usr/local/maven/core/boot/classworlds-1.1-alpha-2.jar
--------------------------------------------------------------------

My relevant <plugin> snippet in pom.xml is as follows :

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>test</phase>
                    </execution>
                </executions>
                <goals>
                    <goal>
                        <id>test</id>
                        <configuration>
                            <!--
                            <test>**/Test*</test>
                            -->
                            <includes>
                                <include 
implementation="java.lang.String">**/Test*</include>
                            </includes>
                        </configuration>
                    </goal>
                </goals>
            </plugin>

Any suggestions what could be going wrong ?

Thanks
Dhananjay

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Nearly empty classpath while executing tests with maven2 beta 1

Posted by Dhananjay Nene <dh...@cash-tech.com>.
Duh!! thats embarassing. The classpath is being set correctly. Thanks.

Kenney Westerhof wrote:

>On Mon, 26 Sep 2005, Dhananjay Nene wrote:
>
>There's nothing wrong here. The system property java.class.path is
>the classpath for the JVM, i.e. the CLASSPATH environment variable
>when you start the jvm.
>
>What you need/want is the 'classpath' of the classloader that runs
>the tests: Thread.currentThread().getContextClassLoader(). That
>classloader has a larger classpath, although it's hard to get the
>classpath string from it. If you really need to, use this snippet
>of code:
>
>    public List getRuntimeClasspath()
>        throws IOException
>    {
>	List classpathEntries = new ArrayList();
>
>        Enumeration n = Thread.currentThread().getContextClassLoader().getResources( "META-INF" );
>
>        while ( n.hasMoreElements() )
>        {
>            URL url = (URL) n.nextElement();
>
>            String path = url.getPath();
>
>            int idx = path.indexOf( "!" );
>            path = (idx > 0) ? path.substring(0, idx) : path;
>
>            URL url2 = new URL(path);
>
>            path = url2.getFile();
>
>            classpathEntries.add( path );
>        }
>
>	return classpathEntries;
>    }
>
>
>But normally you'd use ClassLoader.getResource().
>
>-- Kenney
>
>
>  
>
>>I am unable to figure out why when I run m2 with a test target the
>>tests are executed with a nearly empty classpath. I have setup all my
>>dependencies with the appropriate compile or test scope but these
>>are are not being reflected in the classpath during execution. e.g. I
>>added the following to my test case :
>>
>>System.out.println("--------------------------------------------------------------------");
>>System.out.println(System.getProperty("java.class.path"));
>>System.out.println("--------------------------------------------------------------------");
>>
>>Here's what I get in the output
>>--------------------------------------------------------------------
>>/usr/local/maven/core/boot/classworlds-1.1-alpha-2.jar
>>--------------------------------------------------------------------
>>
>>My relevant <plugin> snippet in pom.xml is as follows :
>>
>>            <plugin>
>>                <groupId>org.apache.maven.plugins</groupId>
>>                <artifactId>maven-surefire-plugin</artifactId>
>>                <executions>
>>                    <execution>
>>                        <phase>test</phase>
>>                    </execution>
>>                </executions>
>>                <goals>
>>                    <goal>
>>                        <id>test</id>
>>                        <configuration>
>>                            <!--
>>                            <test>**/Test*</test>
>>                            -->
>>                            <includes>
>>                                <include
>>implementation="java.lang.String">**/Test*</include>
>>                            </includes>
>>                        </configuration>
>>                    </goal>
>>                </goals>
>>            </plugin>
>>
>>Any suggestions what could be going wrong ?
>>
>>Thanks
>>Dhananjay
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>For additional commands, e-mail: users-help@maven.apache.org
>>
>>    
>>
>
>--
>Kenney Westerhof
>http://www.neonics.com
>GPG public key: http://www.gods.nl/~forge/kenneyw.key
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>For additional commands, e-mail: users-help@maven.apache.org
>  
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Nearly empty classpath while executing tests with maven2 beta 1

Posted by Kenney Westerhof <ke...@apache.org>.
On Mon, 26 Sep 2005, Dhananjay Nene wrote:

There's nothing wrong here. The system property java.class.path is
the classpath for the JVM, i.e. the CLASSPATH environment variable
when you start the jvm.

What you need/want is the 'classpath' of the classloader that runs
the tests: Thread.currentThread().getContextClassLoader(). That
classloader has a larger classpath, although it's hard to get the
classpath string from it. If you really need to, use this snippet
of code:

    public List getRuntimeClasspath()
        throws IOException
    {
	List classpathEntries = new ArrayList();

        Enumeration n = Thread.currentThread().getContextClassLoader().getResources( "META-INF" );

        while ( n.hasMoreElements() )
        {
            URL url = (URL) n.nextElement();

            String path = url.getPath();

            int idx = path.indexOf( "!" );
            path = (idx > 0) ? path.substring(0, idx) : path;

            URL url2 = new URL(path);

            path = url2.getFile();

            classpathEntries.add( path );
        }

	return classpathEntries;
    }


But normally you'd use ClassLoader.getResource().

-- Kenney


> I am unable to figure out why when I run m2 with a test target the
> tests are executed with a nearly empty classpath. I have setup all my
> dependencies with the appropriate compile or test scope but these
> are are not being reflected in the classpath during execution. e.g. I
> added the following to my test case :
>
> System.out.println("--------------------------------------------------------------------");
> System.out.println(System.getProperty("java.class.path"));
> System.out.println("--------------------------------------------------------------------");
>
> Here's what I get in the output
> --------------------------------------------------------------------
> /usr/local/maven/core/boot/classworlds-1.1-alpha-2.jar
> --------------------------------------------------------------------
>
> My relevant <plugin> snippet in pom.xml is as follows :
>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-surefire-plugin</artifactId>
>                 <executions>
>                     <execution>
>                         <phase>test</phase>
>                     </execution>
>                 </executions>
>                 <goals>
>                     <goal>
>                         <id>test</id>
>                         <configuration>
>                             <!--
>                             <test>**/Test*</test>
>                             -->
>                             <includes>
>                                 <include
> implementation="java.lang.String">**/Test*</include>
>                             </includes>
>                         </configuration>
>                     </goal>
>                 </goals>
>             </plugin>
>
> Any suggestions what could be going wrong ?
>
> Thanks
> Dhananjay
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>

--
Kenney Westerhof
http://www.neonics.com
GPG public key: http://www.gods.nl/~forge/kenneyw.key

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org