Maven Ant Tasks: установить артефакт (артефакт: установить) с неизвестным целевым именем файла
В моем Ant-сценарии я использую задачи Maven Ant для установки артефакта в локальный репозиторий, например так:
<target name="installProject">
<artifact:pom id="mypom" file="${user.dir}/pom.xml" />
<artifact:install file="target/myproject-1.0.jar">
<pom refid="mypom"/>
</artifact:install>
</target>
Что мне не нравится в этом подходе, так это то, что я должен определить имя Jar, который я хочу установить точно: target/myproject-1.0.jar
Но что, если имя этой банки изменится? Я хочу иметь более общий подход. Как я могу разрешить Maven Ant Tasks установить все артефакты, которые Maven также установит при запуске mvn clean install
в той же директории в командной строке (где мне НЕ нужно указывать, какой Jar я хочу установить)?
(да, я мог бы просто позвонить Maven с <exec executable="mvn" ...>
, но я думаю, что для этого лучше использовать Maven Ant Tasks)
1 ответ
Никто не знает, что создает ваш build.xml, поэтому вам нужно передать нужные имена артефактов в ant. Это можно сделать с помощью свойств project.groupId, project.artifactId, project.version, которые должны быть доступны в вашем элементе antrun. Потом после сборки build.xml работал. Вы можете использовать задачу Attachartifact Ant, чтобы прикрепить ваши артефакты к Maven. IE
<attachartifact file="${project.build.directory}/${project.artifactId}-${project.version}.jar" type="jar"/>
После этого, когда вы выполняете maven install
это установить ваши муравьиные артефакты.