Установить jar, созданный из задачи ant, в локальный репозиторий maven

Это команда, которую я хочу выполнить в конце моего скрипта 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 ответа

Решение

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>   

Поскольку это муравей / Java, я бы ожидал этого: (не проверено!)

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

Обратите внимание на двойную обратную косую черту, иначе это будет побег, и путь может быть не найден. IIRC вы также можете использовать косые черты.

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

Смотрите также: Ant производит jsfl с косой чертой вместо косой черты

Другие вопросы по тегам