【问题标题】:Maven duplicated files in ZIPMaven 在 ZIP 中复制文件
【发布时间】:2015-10-07 15:40:13
【问题描述】:

我在装有 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

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

此错误仅发生在 Windows 上。 具有相同程序集文件的相同存储库在具有 maven 的 Linux 机器、OSX 机器和具有 jenkins 构建版本的 Linux 服务器上在每次 git 提交后运行良好。

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

【问题讨论】:

    标签: java maven


    【解决方案1】:

    好吧,不要将同一个文件放入存档中。 ZIP 格式允许文件夹中具有相同名称的文件。您的 Maven 构建路径有问题,您应该修复它。

    【讨论】:

      【解决方案2】:

      我建议您排除 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 文档。

      【讨论】:

        猜你喜欢
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 2018-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多