2016-04-16 16 views
1

Hier ist das Plugin für Maven WAR-Plugin:Maven erzeugen zip statt nur WAR-Datei

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

Welche Plugin kann eine ZIP-Datei erzeugen die gleichen Dateien im WAR enthalten?

+0

Warum möchten Sie eine PLZ anstelle einer WAR? – Tunaki

Antwort

1

Eine mögliche Lösung ist die Erstellung einer benutzerdefinierten assembly mit der Verwendung der maven-assembly-plugin. Der folgende Deskriptor deklariert eine Assembly vom Format zip. Es verwendet eine <dependencySet>, um die Abhängigkeit zu dem WAR zu deklarieren, der durch den Maven-Build verpackt wird. Dieser WAR wird entpackt, damit der endgültige ZIP genau den gleichen Inhalt hat wie die WAR-Datei.

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

Speichern Sie diese Datei, for example in src/assembly/assembly.xml. Dann in Ihrem POM, benötigen Sie eine Ausführung dieses Plugin zu erklären:

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

Wenn Sie Maven aufrufen mit mvn clean install, dieses Plugin ausgeführt wird, und es wird die gewünschte ZIP-Datei im target Ordner erstellen.

Verwandte Themen