创建maven“target”目录的zip存档

时间:2010-03-25 09:49:31

标签: maven-2 plugins zip

我希望创建一个我的“目标”目录的zip存档($ {project.build.directory)。使用maven-assembly-plugin似乎对我来说这样一个简单的任务有点过分(有点复杂 - 为什么我必须使用另一个文件,汇编描述符,用于这样的任务) 我无法在maven-zip-plugin存储库中找到看似更简单的http://repo1.maven.org/maven2

任何输入?

2 个答案:

答案 0 :(得分:55)

如果bin预定义的程序集描述符不符合您的需求,那么您有三个选项:

  1. 使用maven-assembly-plugin - maven-zip-plugin永远不会出来,因为程序集插件可以完成zip插件正在做的所有事情,等等,请参阅MNG-2243
  2. 使用maven-antrun-plugin(也许还有build-helper-plugin来附加zip) - 有一个例子here(这看起来比最后的汇编插件更冗长)。 / LI>
  3. 编写自己的插件 - 为什么要在使用程序集插件时执行此操作。
  4. 就个人而言,我只会使用带有以下zip.xml描述符的maven-assembly-plugin:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
      <id>bin</id>
      <baseDirectory>/</baseDirectory>
      <formats>
        <format>zip</format>
      </formats>
      <fileSets>
        <fileSet>
          <directory>${project.build.directory}</directory>
        </fileSet>
      </fileSets>
    </assembly>
    

    在你的POM中:

    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <descriptors>
          <descriptor>src/main/assembly/zip.xml</descriptor>
        </descriptors>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id> <!-- this is used for inheritance merges -->
          <phase>package</phase> <!-- append to the packaging phase. -->
          <goals>
            <goal>single</goal> <!-- goals == mojos -->
          </goals>
        </execution>
      </executions>
    </plugin>
    

答案 1 :(得分:14)

如果您对生成的.zip文件没有任何“特殊”需求,则可以使用其中一个预定义的Maven程序集描述符。预定义的程序集描述符使您可以轻松快速轻松地创建特定程序集,而无需提供自己的程序集描述符。假设您想使用bin预定义描述符。然后在POM的plugins部分的build部分,您可以添加以下内容。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <descriptorRefs>
      <descriptorRef>bin</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

当然,和Maven一样,如果你想做一些超出默认配置的事情,你必须创建自己的配置,在这种情况下,这意味着你自己的汇编描述符。

预定义描述符列表记录为here