使用maven的unpack-dependency复制文件夹内容

时间:2014-05-21 07:41:01

标签: maven maven-plugin

我有一个我在依赖项中定义的zip,如下所示

<dependency>
    <groupId>com.project.mine</groupId>
    <artifactId>${projectname}</artifactId>
    <version>${projectversion}</version>
    <classifier>bin</classifier>
    <type>zip</type>
</dependency>

此zip包含两个文件夹,即

  1. 文件夹1
  2. 文件夹2
  3. 我正在尝试复制此zip的内容,如下所示

    <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <id>unpack-one</id>
                <phase>generate-resources</phase>
                <goals>
                    <goal>unpack-dependencies</goal>
                </goals>
                <configuration>
                    <includeGroupIds>com.project.mine</includeGroupIds>
                    <includeArtifactIds>projectone</includeArtifactIds>
                    <type>zip</type>
                    <outputDirectory>${target.assets}/www</outputDirectory>
                </configuration>
            </execution>
            <execution>
                <id>unpack-two</id>
                <phase>generate-resources</phase>
                <goals>
                    <goal>unpack-dependencies</goal>
                </goals>
                <configuration>
                    <includeGroupIds>com.project.mine</includeGroupIds>
                    <includeArtifactIds>${projectname}</includeArtifactIds>
                    <type>zip</type>
                    <outputDirectory>${target.assets}/www/ProjectOneContent</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    我面临的问题是它复制了两个文件夹。
    我想复制&#39; Folder2&#39;的内容。 (可以是子文件夹,图像,js,css等)里面的ProjectOneContent&#39;文件夹中。

    注意:首次执行完成后会创建ProjectOneContent

2 个答案:

答案 0 :(得分:0)

嗯,从我所看到的,你没有定义任何includes模式(如here所述)。将以下内容添加到您的<configuration>

<includes>Folder2/**</includes>

答案 1 :(得分:0)

我使用maven-antrun plugin实现了它 为了实现这一点,首先我在一个临时位置解压缩依赖关系,然后一旦解压缩,我在所需位置使用antrun逐个复制每个资源