【问题标题】:maven-resources-plugin:2.5 - Cannot create resource output directorymaven-resources-plugin:2.5 - 无法创建资源输出目录
【发布时间】:2020-08-26 02:10:38
【问题描述】:

我在构建项目时偶尔收到此错误

>mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: ...\apache-maven-3.0.5
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: ...
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

和错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources 
(default-resources) on project project-name: Cannot create resource output directory: 
 path\to\project\code\project-name\target\classes -> [Help 1]

注意:这种情况有时会发生,与代码无关。它可能发生在两个连续构建中的一个中 - 一个接一个,针对完全相同的源代码。

有人知道如何完全避免它吗?它往往会中断相当耗时的构建:-/

【问题讨论】:

标签: maven


【解决方案1】:

在 Windows 上,无法创建文件夹的原因有:

  1. 其他进程正在同时删除此文件夹
  2. 您无权访问此文件夹
  3. 文件夹位于网络共享中

众所周知,网络共享在 Windows 上不可靠。不要将它们用于任何自动化任务。始终使用驻留在本地硬盘上的所有文件构建项目。

如果您同时使用 Maven 和 Eclipse 构建,您应该将它们配置为使用不同的目标文件夹。见https://stackoverflow.com/a/54366009/34088

您的 POM 应如下所示:

<project>
  ...

  <build>
    <outputDirectory>${basedir}/${target.dir}/classes</outputDirectory>
    <testOutputDirectory>${basedir}/${target.dir}/test-classes</testOutputDirectory>
  </build>

  <properties>
    <target.dir>target</target.dir>
  </properties>

  <profiles>
    <profile>
      <id>eclipse-folders</id>
      <properties>
        <target.dir>target-eclipse</target.dir>
      </properties>
    </profile>
  </profiles>
  ...  

剩下的就是在 IDE 中启用配置文件 eclipse-folders

【讨论】:

  • 在所有列出的内容中,似乎可以是“1.其他进程正在同时删除此文件夹”
  • 是否有其他进程使用相同的文件夹(例如 Eclipse?)
  • 会是 Intellij IDEA 吗?如果是这样,有什么可能的解决方案?
  • 可能是这样。我使用 Eclipse 知道这个问题:Maven 清理资源,Eclipse 编译器认为“嘿,有人在窃取我的类文件和资源,让我们重新编译”。然后我们遇到了 Maven 和 IDE 在同一个目录中工作的冲突,并且发生了奇怪的事情(例如,通常可以工作的测试失败,目录被锁定,......)
  • 我确实关闭了 Windows 资源管理器,在项目上点击刷新,然后 Project> clean;然后构建工作正常
【解决方案2】:

禁用 IDE 的自动构建(Eclipse 或 IntellJ IDEA 或其他)。它将与 Maven 构建冲突。

【讨论】:

  • 对我来说,同样的问题,即使在启用/禁用自动构建之后,Eclipse。
  • 我确实关闭了 Windows 资源管理器,在项目上点击刷新,然后 Project> clean;然后构建工作正常
【解决方案3】:

当我在 Windows 资源管理器中打开 输出文件夹父文件夹 时,每次运行命令时都会遇到此问题。

如果我将父级上移一级,则构建成功结束。

【讨论】:

    【解决方案4】:

    对我来说,这样做的原因只是在构建时与我的 git bash 一起在所述文件夹中。确保您没有在任何其他程序中打开上述文件夹。

    【讨论】:

      【解决方案5】:

      我在尝试运行 First Cup 教程时遇到了完全相同的问题。

      我通过简单地关闭 NetBeans 并以管理员身份运行它(通过右键单击)来修复它。

      【讨论】:

        【解决方案6】:

        在我的例子中,maven 试图在其中创建目录的父目录是 root,所以我在重新运行 mvn 命令之前做了一个 sudo chown -R : /path/to/directory 来更改权限。

        【讨论】:

          【解决方案7】:

          就我而言,我用 7zip 打开了 jar,然后打开了目标文件夹。我运行我的应用程序并收到此错误。关闭 7zip 后,应用运行正常,构建成功。

          【讨论】:

            【解决方案8】:

            您可以在 pom.xml 中使用以下内容

            <build>
                <directory>${project.basedir}/target1</directory>
            </build>
            

            【讨论】:

              【解决方案9】:

              当我从 windows coammandprompt 发出 mvn clean 命令时,我的问题得到了解决

              【讨论】:

              • 这是我的问题
              猜你喜欢
              • 1970-01-01
              • 2018-02-18
              • 2015-11-23
              • 1970-01-01
              • 2018-02-19
              • 2013-11-20
              • 2012-06-11
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多