1

特定の場所にフォルダを解凍するための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;
4

3 に答える 3

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>
于 2012-12-14T08:48:39.047 に答える
0

解凍タスクでmavenantrunプラグインを使用します。

たとえば、テストの準備中にこれを実行する場合は、次のようにします。

  <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>
于 2012-12-12T14:38:50.660 に答える
0

あなたは正しい道を進んでいましたが、その逆です。

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

private ZipUnArchiver unzipArchiver; 

:)

于 2014-04-22T19:34:07.760 に答える