Maven: как экспортировать проект с исходниками и зависимостями
У меня есть проект Maven с зависимостями в репо и прочее. Я хочу "экспортировать" его источники со всеми зависимостями, чтобы я мог успешно открыть его в IDE без запуска Maven на машине.
При упаковке проекта в файл war, в него входят все зависимости.
Поэтому я хочу, чтобы все эти зависимости плюс мои источники были собраны в одном месте, которое можно открыть с помощью IDE (Eclipse или IDEA) всех обнаруженных библиотек?
3 ответа
Попробуйте плагин maven-dependency-plugin с целью копирования-зависимостей
<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 pe)? Maven может генерировать проект для конкретной среды IDE и включать все зависимые файлы jar в качестве переменных (указывая на эти файлы jar в локальном репозитории), поэтому нет необходимости использовать зависимости копирования для подпапок.
На самом деле, нет ничего, что могло бы создать пакет с исходниками и зависимостями из коробки. Для этого вам нужно использовать комбинацию некоторых плагинов.
Для зависимостей, Maven 2 Dependency Plugin и его copy-dependencies
поможет, как указано cetnar.
Для источников вам может понадобиться плагин Maven Source и его source:aggregate
цель (или, возможно, плагин Maven Assembly и предопределенный src
дескриптор но source:aggregate
удобно для сборок с несколькими модулями).
Чтобы связать все это вместе (и, возможно, распаковать источники), я бы использовал плагин Maven Assembly.
Война с источниками
<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>