Куда идут цели maven?

Я использую Maven 3.0.3. Я хочу написать простую задачу для копирования файла войны из моего целевого каталога в каталог развертывания Tomcat. Куда мне поставить цель? Я старался ...

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>socialmediaproxy</groupId>
  <artifactId>socialmediaproxy</artifactId>
  <packaging>war</packaging>
  <version>0.1</version>

  <goal name="copy-war" description="Copies the war file to the webapps directory">
    <!-- This is Ant stuff -->
    <copy file="${basedir}/target/${artifactId}-${version}.war" tofile="${warDestinationDir}"/>
  </goal>

но когда я бегу

mvn copy-war -P dev

Я получаю эту ошибку...

[ОШИБКА] Сборке не удалось прочитать 1 проект -> [Справка 1] [ОШИБКА]
[ОШИБКА] Проект socialmediaproxy:socialmediaproxy:0.1 (/Users/davea/Documents/workspace-sts-2.6.0.SR1/ socialmediaproxy/pom.xml) имеет 1 ошибку [ОШИБКА] Неверный формат POM /Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/pom.xml: нераспознанный тег: «цель» (позиция: START_TAG замечена .. .y-war" description="Копирует файл war в каталог webapps">... @9:84) @ /Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/pom.xml, строка 9, столбец 84 -> [Справка 2]

Любые идеи? - Дэйв


person Dave    schedule 13.04.2011    source источник


Ответы (2)


Вы можете использовать сам ANT для копирования материала из целевого каталога в каталог Tomcat.

  • Поскольку вы хотите переместить файлы из целевого каталога, запустите плагин ANTRUN на этапе пакета.

    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <phase>package</phase>
    <configuration>
        <target>
            <copy file="${basedir}/target/${artifactId}-${version}.war" tofile="${warDestinationDir}"/>
        </target>
    </configuration>
    <goals>
    <goal>run</goal>
    

Это запустит задачу ANT, упомянутую в <target>, после выполнения цели plase.

person Arpit    schedule 13.04.2011
comment
Ant внутри Maven должен быть последним средством, особенно для чего-то такого тривиального, как копирование. Ищите существующие плагины, которые выполняют необходимую вам функциональность, а если нет, прибегайте к плагину antrun. - person Jesse Webb; 11.06.2011
comment
Да, использование ant внутри maven не было предпочтительным. Пожалуйста, взгляните на maven-resource-plugin или tomcat-maven-plugin. Все плагины могут быть привязаны к фазе жизненного цикла в pom через выполнение и часть конфигурации плагинов в части сборки pom. Таким образом, вы можете привязать плагин ресурсов на этапе установки для выполнения целевого копирования ресурсов: maven.apache.org/plugins/maven-resources-plugin/examples/ - person Huluvu424242; 26.01.2012

Часть цели в pom больше не существует, потому что она из Maven 1... но вы определили pom (модель версии 4.0.0), которая предназначена для Maven 3. Взгляните на текущий ссылка на pom.

person khmarbaise    schedule 13.04.2011