运行mvn命令出现MojoNotFoundException异常

来源:互联网 发布:加盟淘宝店需要多少钱 编辑:程序博客网 时间:2024/06/08 09:19

简介

尝试从命令行创建Maven项目时,遇到了目标不支持的情况,尽管Maven给出了明确的提示信息,但感觉这种问题比较典型,需要记录一下。

问题描述

今天尝试使用mvn命令创建工程,输入:mvn archetype:create -DgroupId=net.csdn.jliu -DartifactId=simple -DpackageName=net.csdn.jliu.mavenbook 运行结果显示错误:

D:\test>mvn archetype:create -DgroupId=net.csdn.jliu -DartifactId=simple -DpackageName=net.csdn.jliu.mavenbook[INFO] Scanning for projects...[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.505 s[INFO] Finished at: 2017-09-11T21:06:02+08:00[INFO] Final Memory: 8M/155M[INFO] ------------------------------------------------------------------------[ERROR] Could not find goal 'create' in plugin org.apache.maven.plugins:maven-archetype-plugin:3.0.1 among available goals crawl, create-from-project, generate, help, integration-test, jar, update-local-catalog -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoNotFoundExceptionD:\test>mvn -vApache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)Maven home: C:\apache-maven-3.5.0\bin\..Java version: 1.8.0_131, vendor: Oracle CorporationJava home: C:\Program Files\Java\jdk1.8.0_131\jreDefault locale: zh_CN, platform encoding: GBKOS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
从日志信息中,可以看出来目标maven-archetype-plugin插件并不支持目标create,同时日志信息中还给出了支持目标列表。从中可以看出当前版本的插件并不支持create目标。我们只能从支持的目标选择,如果能够快速的查看目标的具体信息呢?

根据日志里面提供的wiki链接https://cwiki.apache.org/confluence/display/MAVEN/MojoNotFoundException,研读了一下官方给出的帮助信息,发现可以使用下面的命令可以快速查询帮助信息:

mvn org.apache.maven.plugins:maven-archetype-plugin:help

或者

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-archetype-plugin

后者可以用简写方式来查询

mvn help:describe -Dplugin=archetype
根据帮助信息,当前3.0.1版本的插件,创建工程需要使用目标generate.

问题解决

根据上面的分析,将目标修改为generate即可:

mvn archetype:generate -DgroupId=net.csdn.jliu -DartifactId=simple -DpackageName=net.csdn.jliu.mavenbook 

问题的重点是如何通过本文列举的两种方式查看插件的帮助信息,协作我们快速解决相关问题。

使用Maven help插件

接下来,系统介绍一下help插件。Maven Help插件能让你列出活动的Maven Profile,显示一个实际POM(effective POM),打印实际settings(effective settings),或者列出Maven插件的属性。

Maven Help 插件有四个目标。前三个目标是—— active-profiles, effective-pom 和effective-settings —— 描述一个特定的项目,它们必须在项目的目录下运行。 最后一个目标—— describe ——相对比较复杂,展示某个插件或者插件目标的相关信息。
help:active-profiles
    列出当前构建中活动的Profile(项目的,用户的,全局的)。
help:effective-pom
    显示当前构建的实际POM,包含活动的Profile。
help:effective-settings
    打印出项目的实际settings, 包括从全局的settings和用户级别settings继承的配置。
help:describe
    描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件的 groupId 和 artifactId。

原创粉丝点击