2012-12-12 38 views
1

如何编写java程序(mojo)将文件夹解压到特定位置? 我是新来的maven,如果有人帮我高度赞赏。maven mojo for unzip文件夹?

/** 
    * 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; 

回答

2

您可以使用maven-dependency-plugin这样的:

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

或者你可以使用truezip-maven-plugin如下所示:

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

我会使用maven antrun pluginunzip task

例如,如果你想要这个测试准备过程中发生:

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
      <!-- a lifecycle phase to run the unzip--> 
      <phase> process-test-resources</phase> 
      <configuration> 
       <target> 

       <unzip src="${your.source.zip}" dest="${your.dest}"/> 

       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
0

你是在正确的路上,只是其他华Ÿ轮:

/** 
* The UnZip archiver. 
* 
* @parameter expression="${component.org.codehaus.plexus.archiver.UnArchiver#zip}" 
*/ 

private ZipUnArchiver unzipArchiver; 

:)