【问题标题】:Maven Compile Access Denied Copying DependenciesMaven 编译访问被拒绝复制依赖项
【发布时间】:2021-07-02 13:19:36
【问题描述】:

我在使用 Maven 时遇到了一个以前没有遇到过的奇怪问题。我似乎是我团队中唯一一个有问题的人,这是一个已经存在很长一段时间(10 年以上)的项目。我是团队的新手,但其他似乎没有遇到此问题的成员也是如此。

问题来了:

如果我执行mvn clean compile,我会收到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:dependency-maven-plugin:1.0:copy (copy-dependencies)
  on project deployable-war: Error copying artifact
  from C:\...\dependency\target\classes
  to C:\...\deployable-war\target\dependency\jws\lib\classes:
  C:\...\dependency\target\classes (Access is denied) -> [Help 1]

现在,奇怪的是源文件夹和目标文件夹(dependency\target\classesdeployable-war\target\dependency\jws\lib\classes)都是由 Maven 在相同的编译命令期间创建的。这是一个多模块项目,所以mvn compile 将遍历所有 9 个模块。这是模块 8。依赖模块是模块 7。

如果我之后重新运行mvn compile(没有clean),它会给出同样的错误,所以这似乎不是时间问题。

如果我手动创建文件夹 (mkdir ...\deployable-war\target\dependency\jws\lib\classes) 并重新运行 mvn compile,一切正常。这包括它将 JAR 文件复制到 lib 文件夹中,当它试图创建 classes 文件夹时,它表示访问被拒绝。

我已尝试完全删除 \target\ 文件夹。

我尝试以管理员身份运行 Maven。

我已尝试将项目的新副本从 Git 检出到本地的新目录中。

我已检查项目本身的文件夹权限,以确保我的用户和管理员用户拥有完全控制权。

操作系统是 Windows 10 企业版。

有什么建议吗?

编辑:从讨论中,将错误跟踪到模块的 pom.xml 的这一部分:

<build>
        <finalName>deployable</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>dependency-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/${project.build.finalName}/jws/lib</outputDirectory>
                            <artifactItems>
                                <artifactItem>

现在,该问题似乎与 artifactItem 的一个子集有关 - 特别是 artifactItems 没有明确定义的 destFileNames

【问题讨论】:

标签: windows maven


【解决方案1】:

回到这个问题很久了,但 Gerold 的评论让我找到了正确的解决方案。问题是复制依赖发生在打包之后。所以问题是我是mvn clean compile,而我需要成为mvn clean package

我一瘸一拐地走了很长的路来解决这个问题。多模块、相互依赖的项目的乐趣

【讨论】:

    猜你喜欢
    • 2023-02-26
    • 2010-12-13
    • 2014-12-19
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    相关资源
    最近更新 更多