如果我输入命令:
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存储库中的位置?
答案 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
,然后才尝试为插件执行目标。