我正在使用一个基本的maven项目,其中只在pom.xml中定义了以下内容:
为什么我可以在命令窗口中运行mvn checkstyle:checkstyle
?我不应该定义checkstyle插件pom.xml
吗?我错过了什么?
编辑:eclipse插件" Eclipse Checkstyle插件"已安装。这是什么原因?如果是,maven如何与之沟通?
答案 0 :(得分:12)
正如您已经看到的,可以直接从命令行执行插件,而无需在项目的POM文件中配置插件。
要知道要执行哪个插件,maven使用插件前缀解析。
使用命令行mvn checkstyle:checkstyle
作为示例,这大致与maven的作用相同:
checkstyle
。maven-${prefix}-plugin
(官方Maven插件)${prefix}-maven-plugin
(适用于其他来源的插件)maven-checkstyle-plugin
作为插件的artifactId org.apache.maven.plugins
进行maven搜索)所有这些都在官方专家文档的plugin prefix mapping页面上进行了更详细的解释和更好的解释。
答案 1 :(得分:1)
原因是插件可能不需要在pom中显式配置,也不需要绑定到要运行的阶段。因此,它总是可以通过直接调用运行(在调用Maven时指定目标而不是阶段):
mvn [options] [<goal(s)>] [<phase(s)>]
查看lifecycle文档:
插件目标代表一个特定任务(比构建阶段更精细),它有助于构建和管理项目。它可能绑定到零个或多个构建阶段。未绑定到任何构建阶段的目标可以通过直接调用在构建生命周期之外执行。
它绝对与Eclipse插件无关。