在 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):
- maven-${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/