Maven: как экспортировать проект с исходниками и зависимостями - PullRequest
27 голосов
/ 17 ноября 2009

У меня есть проект Maven с зависимостями в репо и прочее. Я хочу "экспортировать" его источники со всеми зависимостями, чтобы я мог успешно открыть его в IDE без запуска Maven на компьютере.

При упаковке проекта в файл war, в него упаковываются все зависимости.

Итак, я хочу, чтобы все эти зависимости плюс мои источники были собраны в одном месте, которое можно открыть с помощью IDE (Eclipse или IDEA) всех обнаруженных библиотек?

Ответы [ 3 ]

32 голосов
/ 17 ноября 2009

Попробуйте подключаемый модуль maven-dependency-plugin с целью copy-зависимостей

<project>
[...]
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
          <overWriteReleases>false</overWriteReleases>
          <overWriteSnapshots>false</overWriteSnapshots>
          <overWriteIfNewer>true</overWriteIfNewer>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>
</build>
[...]
</project>

PS.
Известно ли вам об интеграции maven и IDE (для Eclipse p.e.)? Maven может генерировать проект для конкретной среды IDE и включать все зависимые файлы jar в качестве переменных (указывая на эти файлы jar в локальном хранилище), поэтому нет необходимости использовать зависимости копирования для подпапок.

10 голосов
/ 18 ноября 2009

На самом деле, нет ничего, что могло бы создать пакет с исходными и зависимостями из коробки. Для этого вам нужно использовать комбинацию некоторых плагинов.

Для зависимостей поможет Maven 2 Dependency Plugin и его copy-dependencies, как указано cetnar.

Для источников вам может потребоваться Исходный плагин Maven и его цель source:aggregate (или, возможно, Плагин Maven Assembly и предопределенный src дескриптор, но source:aggregate удобен для многомодульных сборок).

Чтобы связать все это вместе (и, возможно, распаковать источники), я бы использовал Плагин Maven Assembly .

0 голосов
/ 02 августа 2013

Война с источниками

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <webResources>
        <resource>
          <directory>${build.sourceDirectory}</directory>
          <targetPath>src</targetPath>
        </resource>
      </webResources>
    </configuration>
  </plugin>
...