maven mojo для распаковки папок?
Как написать 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;
3 ответа
Решение
Вы можете использовать плагин 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>
Вы были на правильном пути, наоборот
/**
* The UnZip archiver.
*
* @parameter expression="${component.org.codehaus.plexus.archiver.UnArchiver#zip}"
*/
private ZipUnArchiver unzipArchiver;
:)
Я бы использовал плагин maven antrun с распаковкой.
Например, если вы хотите, чтобы это произошло во время подготовки к тесту:
<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>