开发者

Creating a zip archive of the maven "target" directory

开发者 https://www.devze.com 2022-12-25 02:23 出处:网络
I wish to create a zip archive of my \"target\" directory (${project.build.directory). using the maven-assembly-plugin seems to me like overkill for such a simple task (and a bit complicated - why mus

I wish to create a zip archive of my "target" directory (${project.build.directory). using the maven-assembly-plugin seems to me like overkill for such a simple task (and a bit complicated - why must I use another file, the assembly descript开发者_运维知识库or, for such a task) I can't locate the seemingly more simple maven-zip-plugin in the http://repo1.maven.org/maven2 repository.

Any input?


If the bin predefined assembly descriptor doesn't suit your needs, then you have three options:

  1. Using the maven-assembly-plugin - The maven-zip-plugin never came out because the assembly plugin can do everything the zip plugin was doing, and more, see MNG-2243.
  2. Using the maven-antrun-plugin (and maybe the build-helper-plugin to attach the zip) - There is an example here (and this looks more verbose than the assembly plugin at the end).
  3. Writing your own plugin - why would you do this when you have the assembly plugin.

Personally, I would just use the maven-assembly-plugin with the following zip.xml descriptor:

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

And in your 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>


If you don't have any "special" needs for the generated .zip file, you can use one of the pre-defined Maven Assembly descriptors. The pre-defined assembly descriptors make it easy to quickly and easily create specific assemblies without having to provide your own assembly descriptor. Suppose you wanted to use the bin pre-defined descriptor. Then in the plugins section of your POM's build section, you could just add the following.

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

Of course, as always with Maven, if you want to do something beyond the default configuration, you'll have to create your own configuration, and in this case, that means your own assembly descriptor.

The list of pre-defined descriptors is documented here.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号