1

This is the command I want to run at the end of my Ant script:

 mvn install:install-file -Dfile=C:\dev\common\somejar.jar -DgroupId=com.myco.gt -DartifactId=somejar-Dversion=1.0.0 -Dpackaging=jar -DgeneratePOM=true

If I enter the following target at the end of my Ant script:

<target name='install_mvn_dependencies' depends='build_jars'>
    <exec executable="mvn">
        <arg value="install:install-file"/>
        <arg value="-Dfile=c:\dev\common\somejar.jar"/>
        <arg value ="-DgroupId=com.myco.gt"/>
        <arg value="-DartifactId=somejar"/>
        <arg value="-Dversion=1.2.0"/>
        <arg value="-Dpackaging=jar"/>
        <arg value="-DgeneratePOM=true"/>       
    </exec>   
</target>

I get CreateProcess error=2. The system cannot find the path specified.

even though I can run mvn on the command line. What gives?

4

2 に答える 2

4

The mvn command is actually a batch command, so you can't execute it directly. Try this:

<exec executable="cmd.exe">
    <arg value="/c"/>
    <arg value="mvn.bat"/>
    <arg value="install:install-file"/>
    <arg value="-Dfile=c:\dev\common\somejar.jar"/>
    <arg value ="-DgroupId=com.myco.gt"/>
    <arg value="-DartifactId=somejar"/>
    <arg value="-Dversion=1.2.0"/>
    <arg value="-Dpackaging=jar"/>
    <arg value="-DgeneratePOM=true"/>       
</exec>   
于 2012-11-29T16:51:37.713 に答える
0

As it is ant / java, I would expect this: (untested!)

   <arg value="-Dfile=c:\\dev\\common\\somejar.jar"/>

Notice the double backslash, else it will be an escape and the path might not be found. IIRC you can also use forward slashes.

   <arg value="-Dfile=c:/dev/common/somejar.jar"/>

See also: Ant produces jsfl with backslashes instead of slashes

于 2012-11-29T16:14:41.840 に答える