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 это установить ваши муравьиные артефакты.

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