Maven скопировать вывод проекта в другие ресурсы проекта - PullRequest
9 голосов
/ 09 апреля 2010

Есть два проекта: 1) проект апплета, который выводит файл jar 2) проект веб-приложения, в котором должен храниться файл jar.

После завершения (1) сборки файл jar апплета должен быть скопирован в папку webapp (2). Цель состоит в том, чтобы (2) разместил апплет (1) в Интернете.

Множество примеров объясняют, как использовать другой проект в качестве зависимости от библиотеки. Другие примеры показывают, как использовать плагин ant для копирования файлов. Я не уверен, как правильно это настроить, чтобы «mvn install» в родительском проекте выполнял копирование в нужное время.

1 Ответ

6 голосов
/ 09 апреля 2010

Я бы объявил апплет зависимостью веб-приложения, скопировал его в веб-приложение непосредственно перед упаковкой, используя плагин Dependency и его цель copy. Все решение может выглядеть так:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>my-applet</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope> <!-- we don't want the applet in WEB-INF/classes -->
    </dependency>
    ...
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.1</version>
        <executions>
          <execution>
            <id>copy</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>${project.groupId}</groupId>
                  <artifactId>my-applet</artifactId>
                  <version>${project.version}</version>
                  <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                  <destFileName>the-applet.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
</project>

Объявление апплета в качестве зависимости для порядка сборки реактора (но я не уверен на 100%, что это требуется) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...