Question

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?

Was it helpful?

Solution

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>   

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top