Сначала используйте плагин Maven JAR для создания исполняемого JAR .
Затем настройте сборку так, чтобы она включала все необходимые файлы (в конечном итоге вы можете добавить файл run.bat
/ run.sh
, который будет запускать приложение), а также все зависимости .
Наконец, свяжите создание сборки с целью вашего пакета в pom.xml
:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<descriptors>
<descriptor>/path/to/my-assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
...
Таким образом, вам просто нужно будет выполнить одну команду Maven mvn clean install
, например, чтобы скомпилировать ваш проект, а затем создать пакет ZIP.
Не стесняйтесь обновить свой вопрос, если мой ответ не соответствует вашим потребностям, и вы также можете указать свои текущие assembly.xml
и pom.xml
...
<Ч />
Редактировать
По поводу вашего обновления:
Не думаю, что сборка позволит вам создать пустой каталог. Идея состоит в том, чтобы поместить пустой файл (или readme.txt
, например) и включить каталог в окончательный ZIP. Например, в моем проекте я хочу иметь каталог logs/
, поэтому в моем проекте есть каталог logs/
, который содержит только файл readme.txt
:
<fileSets>
<fileSet>
<directory>../my-package/logs</directory>
<outputDirectory>logs/</outputDirectory>
</fileSet>
</fileSets>
Для имени созданного ZIP-файла вы можете указать его в pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptors>
<descriptor>my-assembly.xml</descriptor>
</descriptors>
<finalName>TheName</finalName>
Если я прав, сборка будет использовать это имя, добавит ID
, определенный в файле assembly.xml
, и использует префикс, адаптированный к указанному формату.