Search code examples
mavenunzipmojo

maven mojo for unzip folders?


How to write java program (mojo) to unzip folders in specific location? I'm new to maven if anyone help me highly appreciate.

/**
    * The Zip archiver.
    * @parameter \
    expression="${component.org.codehaus.plexus.archiver.Archiver#zip}"
    */

    private ZipArchiver zipArchiver;

    /**
    * Directory containing the build files.
    * @parameter expression="${project.build.directory}/Test"
    */

    private File buildDirectory;

    /**
    * Base directory of the project.
    * @parameter expression="${basedir}"
    */

    private File baseDirectory;

Solution

  • You can either use the maven-dependency-plugin like this:

    <project>
       [...]
       <build>
         <plugins>
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-dependency-plugin</artifactId>
             <version>2.6</version>
             <executions>
               <execution>
                 <id>unpack</id>
                 <phase>package</phase>
                 <goals>
                   <goal>unpack</goal>
                 </goals>
                 <configuration>
                   <artifactItems>
                     <artifactItem>
                       <groupId>junit</groupId>
                       <artifactId>junit</artifactId>
                       <version>3.8.1</version>
                       <type>jar</type>
                       <overWrite>false</overWrite>
                       <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
    
                     </artifactItem>
                   </artifactItems>
                    ...
                   <overWriteReleases>false</overWriteReleases>
                   <overWriteSnapshots>true</overWriteSnapshots>
                 </configuration>
               </execution>
             </executions>
           </plugin>
         </plugins>
       </build>
       [...]
     </project>
    

    Or you can use the truezip-maven-plugin like the following:

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>truezip-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <id>unpack</id>
            <goals>
              <goal>cp</goal>
            </goals>
            <phase>ThePhaseYouLike</phase>
            <configuration>
              <from>${project.build.directory}/WhatEveryArchive.zip</from>
              <to>${project.build.directory}</to>
            </configuration>
          </execution>
        </executions>
      </plugin>