maven-resources-plugin:2.5 - 无法创建资源输出目录

时间:2014-07-22 12:36:03

标签: maven

当我使用

构建项目时,偶尔会收到此错误
>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]

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

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

9 个答案:

答案 0 :(得分:18)

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

  1. 其他一些进程正在同时删除此文件夹
  2. 您无权访问此文件夹
  3. 该文件夹位于网络共享
  4. 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 :(得分:7)

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

答案 2 :(得分:5)

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

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

答案 3 :(得分:1)

对我而言,原因只是在构建时使用我的git bash在所述文件夹中。确保您没有碰巧在任何其他程序中打开所述文件夹。

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

当我从Windows coammandprompt发出mvn clean命令时,我的问题已解决

答案 6 :(得分:0)

在我的情况下,maven试图在其中创建目录的父目录是根目录,因此我在重新运行mvn命令之前做了一个sudo chown -R:/ path / to / directory来更改权限。

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

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