Maven:将zip工件解压缩到SPECIFIC文件夹名称

时间:2012-01-19 17:09:41

标签: tomcat maven unpack maven-dependency-plugin

我正在尝试下载tomcat zip工件并将其解压缩到名为tomcat的文件夹中。 我得到的是tomcat / apache-tomcat-7.0.19 / 我怎样才能摆脱恼人的中间目录?

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
    <execution>
        <id>unpack-tomcat</id>
        <phase>process-sources</phase>
        <goals>
            <goal>unpack</goal>
        </goals>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>org.apache</groupId>
                    <artifactId>tomcat</artifactId>
                    <version>7.0.19-win64</version>
                    <type>zip</type>
                    <overWrite>false</overWrite>
                    <outputDirectory>tomcat</outputDirectory>
                    <excludes>webapps/**</excludes>
                </artifactItem>
            </artifactItems>                            
        </configuration>
    </execution>
</executions>
</plugin>

3 个答案:

答案 0 :(得分:5)

也许有更多的“mavenish”方式来实现我的建议:)但使用maven ant插件可能是适合您情况的解决方法:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <configuration>
                            <target>
                                <move file   = "tomcat/apache-tomcat-7.0.19/*"
                                      tofile = "tomcat" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <phase>package</phase>
                        <configuration>
                            <target>
                                <delete dir = "tomcat/apache-tomcat-7.0.19"/>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
</plugin>

答案 1 :(得分:2)

maven unpack with flat path

http://pulkitsinghal.blogspot.com/2011/04/jetspeed-finally-unpack-plugin-with.html

  

绝对没有办法(我知道这篇博文的写作)   让这个maven插件吐出扁平结构。

     

所以一个好的选择是使用jetspeed-unpack-maven-plugin   允许用户指定<flat>true</flat>作为其中的一部分   configuration以便在没有负担的情况下获得所需的文件   具有从包含的工件的根的相对路径   好。

Docs声明此插件还能够将压缩的maven工件内的任意相对路径解压缩到特定的目标文件夹。

答案 2 :(得分:-2)

使用unpack-depencencies目标并将useSubDirectoryPerArtifact设置为false。