Установить 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 с косой чертой вместо косой черты