Maven以ZIP方式复制文件

时间:2015-10-07 07:32:46

标签: java maven

我在带有Java 8的Windows 8.1机器中使用mvn 3.3.1。

mvn --version
Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-13T21:10:27+01:00)
Maven home: C:\bin\apache-maven-3.3.1
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: es_ES, platform encoding: Cp1252
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

问题在于,当我使用mvn clean install为我的应用生成新的部署包时,生成的ZIP文件在其中包含一些文件夹,两个文件名相同的文件。

Error img

我知道一个文件来自我们软件的“产品”版本,另一个是针对特定客户的定制,我们正在为此构建交付。问题是客户端自定义应该有OVERWRITTEN其他文件,而这不是正在发生的事情,它以某种方式添加了两个文件,当您尝试解压缩生成的ZIP文件时,它会放弃错误。

此错误仅发生在Windows上。 具有相同程序集文件的相同存储库在具有maven,OSX计算机的Linux机器上以及在每次git提交后使用jenkins构建版本的Linux服务器上正常工作。

任何人都知道如何强制maven在Windows上覆盖文件?

2 个答案:

答案 0 :(得分:1)

好吧,不要将同一个文件放入存档中。 ZIP格式允许文件夹中具有相同名称的文件。你的Maven构建路径有些不对劲,你应该解决这个问题。

答案 1 :(得分:0)

我建议你从zip结构中明确地排除一些文件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <id>default-jar</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <excludes>
                    <exclude>...</exclude>
                    <exclude>...</exclude>
                    <exclude>...</exclude>
                </excludes>
            </configuration>
        </execution>
    </executions>
</plugin>

查看maven-jar-plugin文档。