我在带有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文件在其中包含一些文件夹,两个文件名相同的文件。
我知道一个文件来自我们软件的“产品”版本,另一个是针对特定客户的定制,我们正在为此构建交付。问题是客户端自定义应该有OVERWRITTEN其他文件,而这不是正在发生的事情,它以某种方式添加了两个文件,当您尝试解压缩生成的ZIP文件时,它会放弃错误。
此错误仅发生在Windows上。 具有相同程序集文件的相同存储库在具有maven,OSX计算机的Linux机器上以及在每次git提交后使用jenkins构建版本的Linux服务器上正常工作。
任何人都知道如何强制maven在Windows上覆盖文件?
答案 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文档。