Maven:为什么我可以运行mvn checkstyle:checkstyle而不用pom.xml配置?

Nth*_*ree 7 checkstyle pom.xml maven

我正在使用一个基本的maven项目,其中只在pom.xml中定义了以下内容:

  • 依赖javaee-api
  • 依赖junit
  • 插件maven-compile-plugin
  • 插件maven-war-plugin
  • 插件wildfly-maven-plugin

为什么我可以mvn checkstyle:checkstyle在命令窗口中运行?我不应该定义checkstyle插件pom.xml吗?我错过了什么?

编辑:安装了eclipse插件"Eclipse Checkstyle Plug-In".这是什么原因?如果是的话,maven如何与之沟通?

DB5*_*DB5 12

正如您已经看到的那样,可以直接从命令行执行插件,而无需在项目的POM文件中配置插件.

要知道要执行哪个插件maven使用插件前缀解析.

使用命令行,mvn checkstyle:checkstyle作为一个例子,这大致是maven的作用:

  • 从执行中获取前缀,冒号前的位.在你的情况下checkstyle.
  • 将此解析为插件的可能名称(artifactId).为此,它使用两种可能的格式:
    • maven-${prefix}-plugin (官方Maven插件)
    • ${prefix}-maven-plugin (适用于其他来源的插件)
  • 所以它现在有maven-checkstyle-plugin插件的artifactId
  • 使用此artifactId和其中一个已配置的groupId搜索插件(默认使用groupId进行maven搜索org.apache.maven.plugins)
  • 它找到了maven-checkstyle-plugin
  • 执行目标(命令中冒号后的位),因此在这种情况下是checkstyle目标.

所有这些都在官方maven文档的插件前缀映射页面上进行了更详细的解释和更好的解释.