Maven zip工件复制,解压缩和重命名

时间:2017-07-27 11:34:22

标签: java maven groovy maven-plugin

我有一个maven模块,它打包为zip,并使用 maven-shade-plugin 命名 my-artifact-1.0-SNAPSHOT.zip

将工件安装到本地maven仓库后,我需要:

  1. 将zip复制到已配置的本地文件夹。
  2. 解压缩档案。
  3. 将解压缩的文件夹从 my-artifact-1.0-SNAPSHOT 重命名为 my-artifact
  4. 此过程应该是跨平台的,适用于Windows,Linux,MacOS计算机。

    我读到可以通过使用:

    来完成
    1. maven-dependency-plugin 加上另一个插件
    2. 行家-Groovy的插件
    3. 实施此类流程的最佳方法是什么?任何例子都非常感谢。

2 个答案:

答案 0 :(得分:2)

在我看来,不需要antrun,maven-dependency-plugin应该可以解决这个问题:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>[your.group.id]</groupId>
                                <artifactId>my-artifact-1.0-SNAPSHOT</artifactId>
                                <version>[your.version]</version>
                                <type>zip</type>
                                <outputDirectory>${project.basedir}/my-artifact/</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

问候,

汤姆

答案 1 :(得分:1)

你有一个可以执行Ant-Tasks的maven插件。这个任务可以让你执行很多工作。例如,要解压缩文件:

<plugins>
   <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.8</version>
      <executions>
         <execution>
            <phase>generate-resources</phase>
            <configuration>
               <tasks>
                  <unzip src="path/to/zip/file.zip" dest="path/to/unzip" />
               </tasks>
            </configuration>
            <goals>
               <goal>run</goal>
            </goals>
         </execution>
      </executions>
   </plugin>
</plugins>

您可以在apache ant页面中查看所有可用的任务(参见参考资料)。

<强>参考: https://ant.apache.org/manual/Tasks