Maven упаковка банок и других файлов - PullRequest
0 голосов
/ 10 января 2012

Я новичок в Maven и получил проект с некоторыми зависимостями.Теперь Maven должен создать jar-файл из всех /src/main/java файлов и поместить их в каталог A.Я хочу добиться следующих вещей в процессе сборки:

  • Поместить все банки зависимостей в папку B
  • Поместить некоторые другие файлы в проект вC.
  • Тогда мне это нужно gzipped и zipped
  • Установить некоторые разрешения на выполнение, установленные вgzip ,
  • Наконец , помещающий два архива на некоторый сетевой диск.

У меня есть такая работа с ANT, но я хочу сделатьчистый порт в Maven и не вызывать большой файл ANT.

Может кто-нибудь указать мне в правильном направлении?Какие плагины мне следует использовать?

Ответы [ 3 ]

2 голосов
/ 10 января 2012

Во-первых, взгляните на Maven Assembly Plugin. Это может удовлетворить все ваши потребности. Я использовал его, но чуть-чуть, чтобы я мог просто указать вам информацию, которая может вам понадобиться.

Вы создаете файл конфигурации XML для этого плагина с именем Assembly Descriptor, который управляет его работой.

На странице плагина есть несколько предустановленных. http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html По крайней мере тот, с источниками в zip поможет вам.

Описание сборки включено http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html.

  • Вы можете копировать зависимости в комплекте зависимостей.
  • В fileSet вы можете определить права на файл.
  • Для GZipping вы можете посмотреть эту тему Создание архива tar.gz с Maven
  • Если копирование на общем диске не может быть обработано плагином Assembly, посмотрите на maven-copy-plugin.

Если плагин Maven Assembly не справится со всем, что вам нужно, вы можете использовать: - Maven Copy Plugin - http://evgeny -goldin.com / wiki / Maven-copy-plugin для копирования исходных файлов - Maven Dependency Plugin - http://maven.apache.org/plugins/maven-dependency-plugin/ для копирования всех зависимых JAR-файлов (цель копирования-зависимостей плагина) - Плагин Maven Resources http://maven.apache.org/plugins/maven-resources-plugin/ - если вам нужно скопировать ресурсы.

1 голос
/ 10 января 2012

Помимо плагина Maven Assembly (и нескольких других способов сделать это), проверьте Maven Shade Plugin .

Плагин Maven Shade

Этот плагин предоставляет возможность упаковать артефакт в Uber-Jar, включая его зависимости и тени - то есть переименовать - пакеты некоторых зависимостей.

Ниже приведен пример конфигурации плагина maven для создания jar-проекта проекта, который имеет зависимости jar:

<build>
        <plugins>
            <plugin>
                <groupid>org.apache.maven.plugins</groupid>
                <artifactid>maven-shade-plugin</artifactid>
                <version>1.4</version>
                <executions>
                  <execution>
                    <phase>package</phase>
                    <goals>
                      <goal>shade</goal>
                    </goals>
                    <configuration>
                      <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                          <mainclass>Main Class of the jar file</mainclass>
                        </transformer>
                      </transformers>
                    </configuration>
                  </execution>
                </executions>
           </plugin>
        </plugins>
  </build>
1 голос
/ 10 января 2012

Я не уверен, что знаю все ваши требования.

Maven может делать что-либо ниже самостоятельно или с помощью плагинов:

0 / "mvn compile" скомпилирует java-файлы в вашей исходной папке, src / main / java - папка по умолчанию и скопирует их в target / classes

1 / "mvn package" заархивирует банку или войну на вашу упаковку

2 / плагин ресурсов maven может выполнять файловые операции

3 / Плагин сборки maven может архивировать ресурсы

4 / "mvn install" установит упакованные файлы jar в локальный репозиторий maven

5 / "mvn deploy" развернет упакованные файлы jar в удаленном хранилище maven, если у вас есть разрешение

Копирование файла в другой проект не является разумной идеей при использовании Maven. В maven-стиле добавлена ​​зависимость maven в Project C pom.xml.

...