将ant任务构建的jar安装到本地maven资源库中

时间:2012-11-29 16:11:36

标签: maven ant maven-ant-tasks

这是我想在Ant脚本结束时运行的命令:

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

如果我在Ant脚本的末尾输入以下目标:

<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>

我得到CreateProcess error=2. The system cannot find the path specified.

即使我可以在命令行上运行mvn。是什么给了什么?

2 个答案:

答案 0 :(得分:4)

mvn命令实际上是一个批处理命令,因此您无法直接执行它。试试这个:

<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>   

答案 1 :(得分:0)

因为它是ant / java,我希望如此:(未经测试!)

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

注意双反斜杠,否则它将是一个转义符,可能找不到路径。 IIRC你也可以使用正斜杠。

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

另请参阅:Ant produces jsfl with backslashes instead of slashes