如何编写java程序(mojo)来解压缩特定位置的文件夹? 如果有人帮我高度欣赏,我是maven的新手。
/**
* 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;
答案 0 :(得分: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>
答案 1 :(得分:0)
我将maven antrun plugin与unzip 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>
答案 2 :(得分:0)
你是正确的方式,反过来说:
/**
* The UnZip archiver.
*
* @parameter expression="${component.org.codehaus.plexus.archiver.UnArchiver#zip}"
*/
private ZipUnArchiver unzipArchiver;
:)