сборка фляги и включение ее в zip с плагином maven-assembly-plug - PullRequest
10 голосов
/ 09 февраля 2011

У меня есть mavenized java-проект (Maven2), который я хочу встроить в jar-файл, что достаточно просто, если в файле pom.xml указать дескриптор jef-with-dependencies.развернуть мой проект в zip-файле с некоторыми файлами .exe и .bat, среди прочего, из папки bin, которая вызывает jar.(Я использую Tanuki , но это не имеет значения для варианта использования, я думаю)

Другими словами, мне нужна сборка, в которой сначала мои источники (и зависимости) упаковываются вjar и этот jar затем помещается в zip с некоторыми дополнительными файлами из папки bin.

Что я должен поместить в мои pom.xml и 'assembly'.xml?

1 Ответ

9 голосов
/ 09 февраля 2011

Maven-assembly-plugin - правильный инструмент для этого.

Вы должны объявить этот плагин в разделе "build" вашего pom и создать другой файл конфигурации "assembly.xml"корень вашего проекта.В этом файле вы определите содержимое вашего zip-файла.

Параметры конфигурации описаны на официальном сайте: http://maven.apache.org/plugins/maven-assembly-plugin/

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

Конфигурация POM:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <finalName>zipfile</finalName>
        <descriptors>
            <descriptor>${basedir}/assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Конфигурация сборки:

<assembly>
    <formats>
        <format>zip</format>
    </formats>

    <fileSets>
        <fileSet>
            <directory>to_complete</directory>
            <outputDirectory />
            <includes>
                <include>**/*.jar</include>
                <include>**/*.bat</include>
                <include>**/*.exe</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>
...