Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a zip archive of the maven "target" directory

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 descriptor, 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?

like image 459
Yaneeve Avatar asked Mar 25 '10 09:03

Yaneeve


People also ask

How do I zip a maven project?

You can accomplish this using maven-assembly-plugin that Pradeep suggested. And also using maven-antrun-plugin. See the pom and zip task. Include the files that you want in fileset.

What is archive in maven?

The Maven Archiver is mainly used by plugins to handle packaging. The version numbers referenced in the Since column on this page are the version of the Maven Archiver component - not for any specific plugin. To see which version of Maven Archiver a plugin uses, go to the site for that plugin.

What is the purpose of maven Assembly plugin?

The Assembly Plugin for Maven enables developers to combine project output into a single distributable archive that also contains dependencies, modules, site documentation, and other files. Your project can easily build distribution "assemblies" using one of the prefabricated assembly descriptors.

What is org Apache Maven plugins?

org.apache.maven.plugins » maven-javadoc-pluginApache. The Apache Maven Javadoc Plugin is a plugin that uses the javadoc tool for generating javadocs for the specified project. Last Release on Aug 13, 2022.


1 Answers

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> 
like image 166
Pascal Thivent Avatar answered Oct 04 '22 11:10

Pascal Thivent