2016-04-16 7 views
1

Вот плагин для Maven плагин WAR:Maven генерировать почтовый индекс вместо того, чтобы просто WAR файл

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
     <webResources> 
      <!-- in order to interpolate version from pom into appengine-web.xml --> 
      <resource> 
       <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
       <filtering>true</filtering> 
       <targetPath>WEB-INF</targetPath> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 

Что плагин может генерировать ZIP-файл, содержащий те же файлы в WAR?

+0

Почему вы хотите создать ZIP вместо WAR? – Tunaki

ответ

1

Возможным решением является создание пользовательского assembly с использованием maven-assembly-plugin.

Следующий дескриптор объявляет сборку формата zip. Он использует <dependencySet>, чтобы объявить зависимость от WAR, упакованную с помощью сборки Maven. Эта WAR распакована, так что окончательный ZIP имеет тот же самый контент, содержащий WAR-файл.

<assembly 
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> 
    <id>zip</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
     <dependencySet> 
      <includes> 
       <include>${project.groupId}:${project.artifactId}:war:${project.version}</include> 
      </includes> 
      <unpack>true</unpack> 
     </dependencySet> 
    </dependencySets> 
</assembly> 

Сохраните этот файл, for example в src/assembly/assembly.xml. Затем, в вашем ПОМ, вы должны объявить выполнение этого плагина:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
      <id>make-zip</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>src/assembly/assembly.xml</descriptor> 
       </descriptors> 
       <appendAssemblyId>false</appendAssemblyId> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

При вызове Maven с mvn clean install, этот плагин будет выполнен, и он будет создавать разыскиваемого ZIP файл в папке target.

Смежные вопросы