未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)

Posted

技术标签:

【中文标题】未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)【英文标题】:Failed to execute goal ... maven-install-plugin ... Failed to install artifact ... (Access is denied) 【发布时间】:2011-08-13 11:29:33 【问题描述】:

我在使用 NetBeans 编译 maven 项目时经常遇到以下错误:

Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install (default-install) on project xxx: Failed to install artifact yyyy: C:\...\.m2\repository\...\yyyy-1.0.0.jar (Access is denied) -> [Help 1]

我不知道是什么原因造成的。解决方案是手动删除有问题的 .m2 内容,然后问题就解决了。但这很烦人。

谁有永久的解决方案?

编辑

[ERROR] 未能执行目标 org.apache.maven.plugins:maven-install-plugin:2.3.1:install (默认安装)在 Plasma 项目上: 安装工件失败 net.dwst:等离子:罐子:1.0.0: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)-> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 org.apache.maven.plugins:maven-install-plugin:2.3.1:install (默认安装)在 Plasma 项目上: 安装工件失败 net.dwst:等离子:罐子:1.0.0: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:203) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:451) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:134) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native 方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 造成的: org.apache.maven.plugin.MojoExecutionException: 安装工件失败 net.dwst:等离子:罐子:1.0.0: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)在 org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:139) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195) ... 19 更多原因: org.apache.maven.artifact.installer.ArtifactInstallationException: 安装工件失败 net.dwst:等离子:罐子:1.0.0: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)在 org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:110) 在 org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:103) ... 21 更多原因: org.sonatype.aether.installation.InstallationException: 安装工件失败 net.dwst:等离子:罐子:1.0.0: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)在 org.sonatype.aether.impl.internal.DefaultInstaller.install(DefaultInstaller.java:279) 在 org.sonatype.aether.impl.internal.DefaultInstaller.install(DefaultInstaller.java:190) 在 org.sonatype.aether.impl.internal.DefaultRepositorySystem.install(DefaultRepositorySystem.java:322) 在 org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:106) ... 22 更多原因: java.io.FileNotFoundException: C:....m2\repository\net\dwst\Plasma\1.0.0\Plasma-1.0.0.jar (访问被拒绝)在 java.io.FileOutputStream.open(本机 方法)在 java.io.FileOutputStream.(FileOutputStream.java:179) 在 java.io.FileOutputStream.(FileOutputStream.java:131) 在 org.sonatype.aether.impl.internal.DefaultFileProcessor.copy(DefaultFileProcessor.java:120) 在 org.sonatype.aether.impl.internal.DefaultInstaller.install(DefaultInstaller.java:255) ... 25 更多 [错误] [错误] [错误] 有关错误的更多信息 和可能的解决方案,请阅读 以下文章:[错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

【问题讨论】:

您可以发布 -e 或 -X 运行的输出以向我们提供更多详细信息。我怀疑其他一些进程正在以一种微妙的方式更改文件权限。 究竟什么是“-e 或 -X 的输出”?关于权限我应该寻找什么? 异常堆栈跟踪和调试日志分别。 【参考方案1】:

我遇到了同样的问题,(对于基于 linux 的用户)我的原因是它试图访问的文件夹具有 root 权限,所以任何普通用户都无法访问它。

解决这个问题有两个步骤: 1.在命令中添加sudo

sudo mvn clean compile    # or any other mvn command

2。删除项目的父文件夹(不是 .m2,与项目名称相同的文件夹),然后重试您的命令

sudo rm -r your-folder/    #  inside ./m2 folder

mnv clean compile  # inside your project

【讨论】:

【参考方案2】:

您的 -Dfile 参数中可能有错字。确保它指向一个实际的文件,而不是一个文件夹

即当你的意思是-Dfile=C:\lib\jackson.jar时,请确保你没有-Dfile=C:\lib\jackson


定位文件夹可能会导致此“拒绝访问”错误,这对于实际问题似乎没有意义。

【讨论】:

【参考方案3】:

我也遇到了这个错误。我通过取消选中文件夹属性只读和隐藏来解决这个问题。

【讨论】:

这不是答案。【参考方案4】:

由于某些原因(windows 7)我没有权限来访问指定的文件夹,所以要么你运行 Maven 或你的 IDE 作为 管理员 或者尝试要访问该文件夹,您将弹出警告,您必须单击“继续”才能永久访问该文件夹,因此您的用户帐户将添加到该文件夹​​的 ACL 中,就是这样!

【讨论】:

【参考方案5】:

我也遇到了这个错误,通过创建一个简单的maven项目解决了。

步骤:-

    与现有项目一起创建一个简单的 maven 项目。 构建这个新项目。 如果构建成功,请构建您现有的 maven 项目。

【讨论】:

【参考方案6】:

经过大约一个小时的挫折后,这是我修复它的方法。

我已经升级了我的 Eclipse 环境并使用 maven-install-plugin 添加了 2 个不在任何存储库中的 jar。这以前有效,但现在不会了。该插件在每次运行构建时都会自动添加 jar。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>install-external1</id>
                    <phase>clean</phase>
                    <configuration>
                        <file>$basedir/resources/storm-eventhubs-1.0.2-jar-with-dependencies.jar</file>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>com.microsoft.eventhubs</groupId>
                        <artifactId>eventhubs-storm-spout</artifactId>
                        <version>1.0.2</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

我去了 .m2 文件夹并更改了它抱怨的 .pom 文件的名称,然后 bam,它创建了一个新文件并运行。显然文件夹结构中存在权限问题。试试看!

【讨论】:

【参考方案7】:

有时,当您执行 mvn clean 时,您应该检查是否打开了 /target 的文件夹或其他生成的资源,因此关闭所有这些文件夹可以解决问题。

【讨论】:

【参考方案8】:

我在 Eclipse Indigo SR2 中遇到过这个问题,我希望尝试一些比删除 .m2 不那么激烈的方法。

如this post 中所述,我尝试取消选中“解决来自工作区项目的依赖项”,但继续收到消息。

我终于通过从命令行运行 mvn clean install 让它工作了。

【讨论】:

【参考方案9】:

此问题在 NetBeans 崩溃后开始发生。我终于删除了 .m2 的内容并从头开始重新安装了 NetBeans。问题消失了。我仍然不清楚是什么原因造成的,但它现在已经消失了。

【讨论】:

当我在VS中打开项目时,我的开始了。我删除了 Maven 存储库并修复了它。感谢您的提示!

以上是关于未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Roo 项目。项目构建错误:未能执行目标

未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)

未能执行目标 org.apache.maven.plugins:maven-enforcer-plugin

未能执行目标 maven-antrun-plugin - GitHub 操作上的连接超时

未能执行目标 org.apache.maven.plugins:maven-resources-plugin:2.5:resources

未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值