Maven: Как сгенерировать файл war проекта в двух папках

#eclipse #maven #m2eclipse

#eclipse #maven #m2eclipse

Вопрос:

Я хочу, чтобы при запуске установки mvn война могла быть сгенерирована в / target, а другая война — в c:….tomcat 6 каталог deploy. Я использую maven2, Eclipse и m2eclipse. Как это сделать?? Спасибо 🙂

Ответ №1:

Вы могли бы попробовать использовать maven-antrun-plugin для копирования вашего war в каталог tomcat deploy следующим образом:

 <build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <configuration>
                        <target>
                            <copy file="{project.build.directory}/${project.actifactId}-${project.version}.war" tofile="<your tomcat path>/${project.actifactId}-${project.version}.war" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  

Ответ №2:

Возможно, вам не нужно копировать файл war, если вы попробуете плагин Maven Jetty. Этот плагин предназначен для запуска веб-приложения непосредственно из Maven.

Комментарии:

1. Я не хочу его запускать, это портлет, который я хочу поместить в папку развертывания liferay-tomcat-bundle для быстрого развертывания 🙂

Ответ №3:

Попробуйте cargo-maven2-plugin. Вероятно, что-то подобное сработало бы:

 <plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <executions>
    <execution>
      <id>deploy-local</id>
      <phase>install</phase>
      <goals>
        <goal>deployer-deploy</goal>
      <goals>
    </execution>
  </executions>
  <configuration>
    <container>
      <containerId>tomcat6x</containerId>
    </container>
    <configuration>
      <type>existing</type>
      <home>/your/tomcat/dir</home> <!-- replace as needed -->
    </configuration>
  </configuration>
</plugin>
  

… вставьте это в профиль или <build><plugins> раздел верхнего уровня и посмотрите, работает ли это для вас…

Комментарии:

1. Как я могу указать имя моего файла .war? потому что это не название проекта версия?

2. Я думаю, что по умолчанию он будет использовать finalName значение, которое вы объявляете. Но я не совсем уверен.