You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Parsons, David" <dc...@rsasecurity.com> on 2004/08/26 00:39:14 UTC

classpath issue with calling ant:java

I need to write a goal to invoke the main() method of a class in my
Maven project.  Following suggestions in a recent thread on this list, I
am attempting this with the <ant:java/> tag.  The problem I am having is
with the classpath, which needs to include the project's dependencies.
First I tried to use ${maven.dependency.classpath}, like so:
 
    <goal name="perfmon:run">
 
<echo>maven.dependency.classpath=${maven.dependency.classpath}</echo>
        <ant:java jar="${basedir}/target/perfmon-0.1.jar" fork="true">
            <ant:classpath>
                <ant:path path="${maven.dependency.classpath}"/>
            </ant:classpath>
        </ant:java>
    </goal>

...which fails because apparently maven.dependency.classpath is not set
(according to the <echo/> tag).  My second attempt was to hardcode the
necessary dependencies, but this fails for a different reason:
 
    <goal name="perfmon:run">
        <ant:java
            jar="${basedir}/target/perfmon-0.1.jar"
            fork="true">
            <ant:classpath>
                <ant:pathelement
location="${maven.repo.local}\springframework\jars\spring-1.0.jar"/>
            </ant:classpath>
        </ant:java>
    </goal>

>From 'maven -X perfmon:run', this appears to construct the correct
arguments:
 
    [java] [DEBUG] Execute:Java13CommandLauncher: Executing 'java.exe'
with arguments:
'-classpath'
'C:\Documents and
Settings\dcparsons\.maven\repository\springframework\jars\spring-1.0.jar
'
'-jar'
'C:\p4\dev\ims\test\perfmon\target\perfmon-0.1.jar'
 
However, I still see
 
    [java] java.lang.NoClassDefFoundError:
org/springframework/beans/factory/xml/XmlBeanFactory
 
Any ideas?  I'm running Maven 1.0RC2, under Windows.  Is it having
trouble with the spaces in my maven.repo.local ("C:\Documents and
Settings\dcparsons\.maven\repository")?  I've tried many variations on
constructing the path, like refids and fileSets, etc., but the behaviour
is the same: no ${maven.dependency.classpath}, and no class found.
 
Stumped - David

Re: classpath issue with calling ant:java

Posted by "matthew.hawthorne" <ma...@apache.org>.
Parsons, David wrote:
> I need to write a goal to invoke the main() method of a class in my
> Maven project.  Following suggestions in a recent thread on this list, I
> am attempting this with the <ant:java/> tag.  The problem I am having is
> with the classpath, which needs to include the project's dependencies.
> First I tried to use ${maven.dependency.classpath}, like so:
>  
>     <goal name="perfmon:run">
>  
> <echo>maven.dependency.classpath=${maven.dependency.classpath}</echo>
>         <ant:java jar="${basedir}/target/perfmon-0.1.jar" fork="true">
>             <ant:classpath>
>                 <ant:path path="${maven.dependency.classpath}"/>
>             </ant:classpath>
>         </ant:java>
>     </goal>
> 
> ...which fails because apparently maven.dependency.classpath is not set
> (according to the <echo/> tag).  My second attempt was to hardcode the
> necessary dependencies, but this fails for a different reason:


Try it like this:
<ant:path path="maven.dependency.classpath"/>

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