Создайте почтовый индекс со всеми зависимостями с Maven

Возможный дубликат:
С Maven, как я могу построить дистрибутив, который имеет банку моего проекта и все зависимые баночки?

Возможно, я слепой, но может ли плагин сборки maven просто создать zip файл, содержащий текущий файл project.jar и все мои банки с зависимостями? идентификатор "bin" содержит только мой project.jar, а jar-with-dependations объединяет все в одну банку, которая мне не нравится.

Ответы

Ответ 1

Вам нужен пользовательский дескриптор сборки, чтобы делать то, что вы хотите. Это комбинация предопределенных дескрипторов bin и jar-with-dependencies. Создал пользовательский дескриптор сборки с именем assembly.xml в папке src/main/assembly.

Вот пример, который в основном представляет собой дескриптор bin с добавленным набором зависимостей:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
  <id>bin</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}/site</directory>
      <outputDirectory>docs</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <useProjectArtifact>true</useProjectArtifact>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

Затем измените свой pom, чтобы использовать дескриптор вместо дескриптораRef, чтобы сообщить ему, где находится ваш пользовательский дескриптор.

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
          </descriptors>
        </configuration>
        [...]
</project>

Ответ 3

Посмотрите здесь Пример 502... есть пример, как упаковать все зависимости и т.д. в tar.gz/zip и т.д..