java 为什么maven找不到插件?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/308428/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-29 11:52:45  来源:igfitidea点击:

Why can't maven find a plugin?

javamaven-2dependenciesmaven-plugin

提问by izb

If I type the command:

如果我输入命令:

mvn dependency:list

The docssuggest that I'll get a list of my project's dependencies. Instead though, I get this:

文件表明,我会得到我的项目的依赖列表。相反,我得到了这个:

[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] -----------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] -----------------------------------------------------------
[INFO] Required goal not found: dependency:list

Call me a hopeful naive, but I had hoped maven would download any plugins it didn't have. Does anyone know what might be leading to this error? Does anyone know where maven stores information about what plugins it has installed, and where they're stored in the maven repository?

称我为充满希望的天真,但我曾希望 maven 会下载它没有的任何插件。有谁知道可能导致此错误的原因是什么?有谁知道 maven 在哪里存储有关它已安装的插件的信息,以及它们在 maven 存储库中的存储位置?

采纳答案by izb

To answer my own question, thanks to some comments that were made on it, the settings.xml file had been customized and did not list the central maven repository.

为了回答我自己的问题,多亏了对它的一些评论,settings.xml 文件已经过自定义并且没有列出中央 maven 存储库。

Oops.

哎呀。

回答by Ivan Dubrov

Have you tried mvn -cpu dependency:list(or: mvn --check-plugin-updates dependency:list)? Probably, you have older version of dependency plugin which does not have goal list

你有没有试过mvn -cpu dependency:list(或:)mvn --check-plugin-updates dependency:list?可能,你有没有目标的旧版本依赖插件list

If this does not help, try upgrading Maven. Since 2.0.9 default versions are provided by the Super POM for most important plugins (dependency plug-in included), so 2.0 version will be downloaded (which has listgoal).

如果这没有帮助,请尝试升级 Maven。由于 Super POM 为大多数重要插件(包括依赖插件)提供了 2.0.9 默认版本,因此将下载 2.0 版本(有list目标)。

Or you can try removing the cached version of the plug-in from the repository (~/.m2/repository/org/apache/maven/plugins/maven-dependency-plugin/, where ~is the user home directory).

或者您可以尝试从存储库中删除插件的缓存版本(~/.m2/repository/org/apache/maven/plugins/maven-dependency-plugin/,其中~是用户主目录)。

回答by Michael Rutherfurd

I have gotten a similiar result from being behind the corporate firewall. Proxy settings in your config (settings.xml) might be the answer.

我在公司防火墙后面得到了类似的结果。您的配置 (settings.xml) 中的代理设置可能就是答案。

<proxies>
  <proxy>
   <id>proxy</id> 
   <active>true</active> 
   <username>user</username>
   <password>passwrd</password>
   <protocol>http</protocol>
   <host>example.proxy.name.com</host>
  <port>80</port>
 </proxy>
</proxies>

回答by Matthew McCullough

Many Maven troubles can be solved easier by knowing all the details of the failed attempt when posting to forums (answering many of the follow-up questions folks above posted) or mailing list, and this is accomplished by running Maven with the debug and exception option switches like so: mvn <yourgoal> -X -e

通过在发布到论坛(回答上面发布的许多后续问题)或邮件列表时了解失败尝试的所有详细信息,可以更轻松地解决许多 Maven 问题,这是通过使用调试和异常选项运行 Maven 来完成的像这样切换: mvn <yourgoal> -X -e

Sample output then will look like this:

示例输出将如下所示:

[~/Documents/Temp/Scratch] mvn clean -e -X
Using Java version: 1.6
+ Error stacktraces are turned on.
Maven version: 2.0.9
Java version: 1.6.0_07
OS name: "mac os x" version: "10.5.6" arch: "x86_64" Family: "mac"
[DEBUG] Building Maven user-level plugin registry from: '/Users/mccm06/.m2/plugin-registry.xml'
[DEBUG] Building Maven global-level plugin registry from: '/Applications/Dev/apache-maven/conf/plugin-registry.xml'
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [clean]
[INFO] ------------------------------------------------------------------------
[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins::10 for project: null:maven-clean-plugin:maven-plugin:2.2 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent::7 for project: org.apache.maven.plugins:maven-plugins:pom:10 from the repository.
[DEBUG] Retrieving parent-POM: org.apache:apache::4 for project: org.apache.maven:maven-parent:pom:7 from the repository.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:377)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        ... 16 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Mon Feb 16 10:59:39 MST 2009
[INFO] Final Memory: 2M/7M
[INFO] ------------------------------------------------------------------------

回答by Dragas

While unrelated to your issue being fixed, first you should execute installand only then try executing goals for your plugin.

虽然与您的问题被修复无关,但首先您应该执行install,然后才尝试为您的插件执行目标。

回答by André

Try latest maven version, usually upgrades to newer versions solve issues.

尝试最新的 maven 版本,通常升级到较新的版本可以解决问题。