2011-02-09 3 views
8

У меня есть проект mavenized java (Maven2), который я хочу построить в банке, что достаточно просто, предоставив дескриптор jar-with-dependresRef в pom.xml.создание банку и включение его в zip с помощью maven-assembly-plugin

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

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

Что мне следует добавить в мой pom.xml и 'assembly'.xml?

ответ

8

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> 
+0

Спасибо за ваш ответ, это был решающий удар начала мне нужно, чтобы заставить его работать. – NomeN

+1

Мне нужно было добавить еще один дескриптор, который делает мою банку. На самом деле я просто скопировал формат дескриптора jar-with-dependations с сайта, который вы упомянули, используя дескриптор jar-with-dependresRef, окутавший zip-сборку. то есть он строит «sic» jar сначала, а затем zip, а затем с-dependencies.jar, который строит zip с первым (бесполезным) банком, но без второго, странным справа ?! – NomeN