为什么maven找不到插件?

时间:2008-11-21 11:02:55

标签: java maven-2 dependencies maven-plugin

如果我输入命令:

mvn dependency:list

docs建议我将获得项目依赖项的列表。相反,我得到了这个:

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

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

6 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

我在公司防火墙后面得到了类似的结果。您的配置(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>

答案 2 :(得分:1)

要回答我自己的问题,感谢上面的一些评论,settings.xml文件已经自定义,并没有列出中央maven存储库。

糟糕。

答案 3 :(得分:1)

通过了解发布到论坛(回答上面发布的许多后续问题人员)或邮件列表时失败尝试的所有细节,可以更轻松地解决许多Maven问题,这可以通过运行带调试的Maven来实现和例外选项切换如下:mvn <yourgoal> -X -e

示例输出将如下所示:

[~/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] ------------------------------------------------------------------------

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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