maven - 默认的Maven tomcat插件在哪里配置的?

标签 maven tomcat

在 Maven 项目中,我可以在不将 tomcat 插件添加到 POM 的情况下使用它。所以我可以像这样部署和运行我的 webapp:

mvn clean install tomcat:run

我知道它使用了一些默认配置,但我的问题是为什么 Maven 允许我使用这个插件,即使我没有配置它?它也不在 super POM 中。所以我不知道它的配置来自哪里。有人知道吗?

最佳答案

Maven 对此有一些约定,即使您没有在项目 POM 或 settings.xml 中配置任何内容。 当您在命令行中以这种方式调用插件时,Maven 会尝试通过添加以下 groupId 之一来查找插件:

  • org.apache.maven.plugins
  • org.codehaus.mojo

对于 artifactId,它还尝试使用以下之一来完成您指定的“前缀”(此处为 tomcat):

  • ma​​ven-${prefix}-plugin:(官方插件约定)-> maven-tomcat-plugin
  • ${prefix}-maven-plugin:(第 3 方插件的约定)-> tomcat-maven-plugin

对于版本,它只是尝试获取最新的可用版本。

在您的特定情况下,默认值匹配:org.codehaus.mojo:tomcat-maven-plugin:1.1(或任何其他可用版本)。

A bit more detail here关于机制,以及如何将这些约定用于您自己的 groupId。

关于maven - 默认的Maven tomcat插件在哪里配置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28146733/

相关文章:

android - 闭源 Android 库分发

maven - 如何找出在 IntelliJ Idea 中定义了有效 pom 的依赖项的 pom?

maven - 从 Spring Roo 项目中提取域类

maven-2 - 在 Maven 2 中定义自定义生命周期阶段

java - Spring Boot JspServlet 自动配置

java - Java(Tomcat)中HttpRequest的参数默认编码

javax.ws.rs.NotFoundException : Could not find resource for full path Error Occures

java - 如何检测 HttpServletRequest 的 TLS 版本?

tomcat - 应用布局 : main 时出错

java - SoapUI 找不到我的网络服务