最好的“通用”Maven插件

时间:2010-04-11 08:07:30

标签: java maven-2 plugins

我们正在转向Maven,我知道有一个不同的插件和世界的世界。扩展。哪些是您推荐用于一般用途的最佳产品?

(请在每个答案的插件上)

12 个答案:

答案 0 :(得分:21)

我发现这些插件在我的日常工作中最有用:

  • surefire - 用于单元测试
  • dependency - 用于模块依赖性分析
  • cobertura - 用于单元测试覆盖率分析
  • liquibase - 用于运行数据库迁移
  • assembly - 用于创建包含应用程序所需的所有依赖项的单个可执行jar

还有更多的探索,当然还取决于您的项目需求。当然,我使用的最有用的插件之一是我自己编写的一些特定需求。这是maven最有价值的功能之一 - 能够轻松扩展它。

答案 1 :(得分:11)

Maven Versions Plugin,对于检查和管理POM和依赖项的版本非常有用:

  • versions:display-dependency-updates - 扫描项目的依赖项,并生成具有更新版本的依赖项的报告。
  • versions:display-plugin-updates - 扫描项目的插件,并生成那些有更新版本的插件的报告。
  • versions:update-child-modules - 更新项目子模块的父节,以使版本与当前项目的版本匹配。例如,如果您有一个聚合器pom,它也是它聚合的项目的父级,并且子级和父级版本不同步,则此mojo可以帮助修复子模块的版本。 (注意,如果您的项目因为版本不匹配而无法构建,那么您可能需要使用-N选项调用Maven以运行此目标。)
  • versions:set - 可用于从命令行设置项目版本。

答案 2 :(得分:10)

maven jetty插件非常棒,它有助于使Web应用程序开发更容易。您可以简单地执行此操作,而不是打包您的应用程序:

mvn jetty:run

你的申请开始了。

答案 3 :(得分:7)

Maven Dependency Plugin是调试/清理/理解POM以及如何获得某些依赖(传递)的另一个强制插件:

  • dependency:analyze - 分析该项目的依赖关系,并确定哪些是:使用和声明的;使用和未声明;未使用和宣布。
  • dependency:tree - 显示此项目的依赖关系树。

答案 4 :(得分:6)

允许控制所有插件具有指定版本或某些环境约束的Maven Enforcer Plugin,例如Maven版本,JDK版本和OS系列,以及更多标准规则和用户创建的规则。

答案 5 :(得分:5)

调试POM所必需的Maven Help Plugin

  • help:effective-pom - 显示有效的POM
  • help:active-profiles - 列出当前为构建活动的配置文件。
  • help:evaluate - 评估maven表达式

答案 6 :(得分:5)

Maven FindBugs Plugin是您想要进行静态代码分析的东西。检测开发人员测试未涵盖的错误非常有用。

答案 7 :(得分:4)

Maven Cargo Plugin启动和停止Web容器。您还可以使用它将Web应用程序部署到正在运行的容器中。我们将它用于Web应用程序的集成和功能测试。

答案 8 :(得分:4)

exec-maven-plugin对于运行未知插件未涵盖的任务非常有用。

它有两个目标,第一个'exec'允许您运行任何可执行文件,就好像您在任何阶段从命令行运行它一样。第二个目标'java'允许你运行任何java类。

当我不得不添加由CUP生成的Parser类时,它可以节省生命。没有CUP maven插件,但是exec允许我执行CUP的主java类来生成我的解析器。

我可以想到这个的任何用途;然而却很难找到;它的存在应该贴在maven文档的首页上。

答案 9 :(得分:3)

请原谅这个插件,但这比重复每个插件更容易:)

这里介绍了一些内容,但这包括其他内容。

答案 10 :(得分:3)

答案 11 :(得分:1)

通常,一个插件具有特定目的,即您将使用的插件取决于您想要的东西。例如,如果要指定源版本,请使用maven-compiler-pluginmaven-javadoc-plugin生成javadoc。其他插件可能会在运行集成测试之前启动Jetty,并且有一些插件可将二进制版本部署到应用程序服务器等。

有关概述,请访问Maven - Available PluginsMaven Central Repository上的插件目录。 Codehaus的Mojo project还有许多插件。可以找到相应的存储库here