2016-04-16 18 views
1

ファイルは、ここでのMaven WARプラグイン用のプラグインです:Mavenのzipファイルを生成するだけではなく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> 

WAR内の同じファイルを含むZIPファイルを生成することができますどのようなプラグインは?

+0

なぜあなたはWARの代わりにZIPを使用しますか? – Tunaki

答えて

1

可能な解決策は、maven-assembly-pluginを使用してカスタムassemblyを作成することです。

次のディスクリプタは、フォーマットzipのアセンブリを宣言します。 <dependencySet>を使用して、Mavenビルドでパッケージ化されたWARに対する依存関係を宣言します。この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> 

このファイルを保存し、src/assembly/assembly.xmlfor example。次に、あなたのPOMには、このプラグインの実行を宣言する必要があります:あなたはmvn clean installとMavenを呼び出すと

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

、このプラグインが実行され、それがtargetフォルダ内の希望ZIPファイルを作成します。

関連する問題