【问题标题】:Maven Shading Error: Access is DeniedMaven 着色错误:访问被拒绝
【发布时间】:2014-06-02 01:47:37
【问题描述】:

现在,我已经看到了this question,但似乎没有任何东西在使用我的目标文件夹。

发生了什么,当我编译失败并显示此错误时:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) on project FooProject: Error creating shaded jar: Failed to analyze class dependencies: C:\Users\paul_000\Documents\FooCore\target\classes (Access is denied) -> [Help 1]

我不太清楚为什么会发生这种情况,因为它不会在我的普通计算机上发生。

编辑:我忘了提,我正在着色的 jar 在存储库中不存在。我只是在本地编译它(全新安装)。 同样,这是我用来遮蔽的:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <configuration>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <minimizeJar>true</minimizeJar>
            </configuration>
        </execution>
    </executions>
</plugin>

【问题讨论】:

  • 可能是使用管理员权限创建的目标目录或被另一个进程锁定。使用 -e 开关获取完整的堆栈跟踪也会有所帮助。
  • 我会检查完整的堆栈跟踪,但是它没有管理员权限(我是唯一的管理员 + 我检查过)。我已经在安全模式下重新启动到相同的结果,所以我怀疑这是一个过程。

标签: java eclipse maven access-denied


【解决方案1】:

如果您使用 m2e 插件从 Eclipse 编译,您可能会遇到此错误。

解决方法是取消选中 Maven 运行配置中的 Resolve Workspace artifacts

【讨论】:

  • 这解决了以前的问题,但现在我遇到了工作区工件未解决的问题...如何打开分辨率并让 m2e 插件正常工作?
  • @svobol13 工作区工件未解析,因为在您的本地存储库中找不到它。右键单击该工作区工件,然后单击 Run As 并单击 Maven install。您的项目现在应该可以正常编译了。
  • 谢谢斯蒂芬,我浪费了一整天的时间来寻找为什么它没有制造战争。
  • 感谢这帮助我解决了一个错误... target/classes (Is a Directory)。除了禁用“解决工作区工件”之外,还有什么方法可以解决这个问题?
  • @mxro 您能否发布一个包含您的特定案例的所有详细信息的新问题?请随时在此处的评论中留下指向新问题的链接。
【解决方案2】:

我遇到了类似的问题,因为这是谷歌上出现的第一个问题,所以我在此处添加我的解决方案作为答案。
就我而言,问题与我设置的 dependencyReducedPomLocation 有关。
我想将dependency-reduced-pom 移动到target 文件夹,因此我将属性设置为${project.build.directory}
但是,此属性不需要文件夹,而是文件,它的正确值是 ${project.build.directory}${file.separator}dependency-reduced-pom.xml
在此更改之后,一切都按预期工作。

【讨论】:

    【解决方案3】:

    我正在使用带有 maven 插件的 Eclipse Spring。我在日志中看到了类似的错误:

    [错误] 无法在项目 lds_ws_framework 上执行目标 org.apache.maven.plugins:maven-shade-plugin:2.3:shade(默认):创建阴影 jar 时出错:C:\Users\fritchd\Documents\autoaction_archivetkitproject\目标\类(访问被拒绝)-> [帮助 1]

    我最近更新了我的项目以使用来自不同 maven 构建过程的 maven-shade-plugin 2.3。我注意到我在 \target 文件夹中有很多来自上一个过程的工件。所以我尝试删除该项目的 \target 目录下的所有文件。当我重新运行构建时,我没有看到错误。

    【讨论】:

    • 很可能您有一个程序在使用目录中的文件,或者您在该目录中有一个终端。
    【解决方案4】:

    使用 maven-shade-plugin 的 artifactSet 选项

    无论出于何种原因,Eclipse 都不会产生“拒绝访问”错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 2012-12-21
      • 2010-12-23
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多