位置:首页 > Java > Maven插件安装配置与常见使用教程

Maven插件安装配置与常见使用教程

时间:2026-08-13  |  作者:冻月看渠  |  阅读:0

Ma ven 插件是扩展 Ma ven 功能的可执行组件,每个插件包含一个或多个目标(goals),用于执行特定任务(如编译、测试、打包等)。

插件与生命周期的关系:

  • 生命周期(Lifecycle):定义构建阶段(phase)的顺序

  • 插件(Plugin):提供具体实现(goal)来完成这些阶段的任务

Maven插件安装配置与常见使用教程_wishdown.com

Ma ven 有以下三个标准的生命周期:

  • clean:项目清理的处理
  • default(或 build):项目部署的处理
  • site:项目站点文档创建的处理

Maven插件安装配置与常见使用教程_wishdown.com

每个生命周期中都包含着一系列的阶段(phase)。这些 phase 就相当于 Ma ven 提供的统一的接口,然后这些 phase 的实现由 Ma ven 的插件来完成。

平时输入 mvn 命令时,比如 mvn clean,这里的 clean 指向的其实就是 Clean 生命周期里的 clean 阶段。不过,真正把清理动作落到实处的,并不是这个阶段名称本身,而是 ma ven-clean-plugin

所以说 Ma ven 生命周期的每一个阶段的具体实现都是由 Ma ven 插件实现的。

Ma ven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Ma ven 插件通常被用来:

  • 创建 jar 文件
  • 创建 war 文件
  • 编译代码文件
  • 代码单元测试
  • 创建工程文档
  • 创建工程报告

插件通常提供了一个目标的集合,并且可以使用下面的语法执行:

mvn [plugin-name]:[goal-name]

例如,一个 Ja va 工程可以使用 ma ven-compiler-plugin 的 compile-goal 编译,使用以下命令:

mvn compiler:compile

插件核心机制

插件坐标

与依赖类似,插件也通过 groupId、artifactId、version 唯一标识:

属性说明常见值
groupId插件组织org.apache.ma ven.plugins(官方插件)
artifactId插件名称ma ven-compiler-plugin
version插件版本3.8.1

插件目标(Goals)

每个插件可以包含多个目标,例如:

  • ma ven-compiler-plugin

    • compile:编译主代码

    • testCompile:编译测试代码

  • ma ven-surefire-plugin

    • test:运行单元测试

插件绑定方式

1、内置绑定

Ma ven 已为生命周期阶段预绑定插件目标:

生命周期阶段绑定的插件目标
compilema ven-compiler-plugin:compile
testma ven-surefire-plugin:test
packagema ven-jar-plugin:jar(或 ma ven-war-plugin:war

2、自定义绑定

在 pom.xml 中显式配置:


    
        
            org.apache.ma ven.plugins
            ma ven-compiler-plugin
            3.8.1
            
                
                    compile  
                    
                        compile
                    
                
            
        
    

常用官方插件

编译相关

插件作用常用目标
ma ven-compiler-plugin编译 Ja va 代码compile, testCompile
ma ven-resources-plugin处理资源文件resources, testResources

配置示例:


    org.apache.ma ven.plugins
    ma ven-compiler-plugin
    3.8.1
    
        11  
        11
    

测试相关

插件作用常用目标
ma ven-surefire-plugin运行单元测试test
ma ven-failsafe-plugin运行集成测试integration-test

跳过测试配置:


    org.apache.ma ven.plugins
    ma ven-surefire-plugin
    2.22.2
    
        true  
    

打包相关

插件作用常用目标
ma ven-jar-plugin打包 JAR 文件jar
ma ven-war-plugin打包 WAR 文件war
ma ven-assembly-plugin自定义打包single

可执行 JAR 配置:


    org.apache.ma ven.plugins
    ma ven-jar-plugin
    3.2.0
    
        
            
                com.example.Main  
            
        
    

部署相关

插件作用常用目标
ma ven-install-plugin安装到本地仓库install
ma ven-deploy-plugin部署到远程仓库deploy

插件调用方式

通过生命周期调用:

mvn compile  # 触发 ma ven-compiler-plugin:compile

直接调用插件目标:

mvn compiler:compile  # 直接调用编译目标

命令行参数配置:

mvn compiler:compile -Dma ven.compiler.source=11

自定义插件配置

参数配置

通过 configuration 标签设置:


    org.apache.ma ven.plugins
    ma ven-surefire-plugin
    2.22.2
    
        
            **/*Test.ja va  
        
    

多目标执行:


    
        run-tests
        test
        
            test
        
    

插件开发基础

Mojo 概念

  • 插件目标对应的 Ja va 类称为 Mojo(Ma ven plain Old Ja va Object)。

  • 必须继承 AbstractMojo 并实现 execute() 方法。

简单插件示例

实例

@Mojo(name = "greet", defaultPhase = LifecyclePhase.COMPILE)
public class GreetingMojo extends AbstractMojo {
    @Parameter(property = "name", defaultValue = "World")
    private String name;
    public void execute() throws MojoExecutionException {
        getLog().info("Hello, " + name + "!");
    }
}

打包和安装插件

mvn clean install  # 将插件安装到本地仓库

插件类型

Ma ven 提供了下面两种类型的插件:

类型 描述
Build plugins 在构建时执行,并在 pom.xml 的 元素中配置。
Reporting plugins 在网站生成过程中执行,并在 pom.xml 的 元素中配置。

下面是一些常用插件的列表:

插件 描述
clean 构建之后清理目标文件。删除目标目录。
compiler 编译 Ja va 源文件。
surefile 运行 JUnit 单元测试。创建测试报告。
jar 从当前工程中构建 JAR 文件。
war 从当前工程中构建 WAR 文件。
ja vadoc 为工程生成 Ja vadoc。
antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。

实例

前面的示例里,其实已经多次用到 ma ven-antrun-plugin,主要就是把数据输出到控制台。相关内容可以结合 Ma ven - 构建配置文件 这一章一起看。为了把这部分讲得更清楚,下面换一种更直观的方式来理解:先在 C:MVNproject 目录下创建一个 pom.xml 文件。


4.0.0
com.companyname.projectgroup
project
1.0


   
   org.apache.ma ven.plugins
   ma ven-antrun-plugin
   1.1
   
      
         id.clean
         clean
         
            run
         
         
            
               clean phase
            
         
           
   
   


接下来,打开命令终端跳转到 pom.xml 所在的目录,并执行下面的 mvn 命令。

mvn clean

Ma ven 将开始处理并显示 clean 生命周期的 clean 阶段。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]    task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
     [echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] ------------------------------------------------------------------

上面的例子展示了以下关键概念:

  • 插件是在 pom.xml 中使用 plugins 元素定义的。
  • 每个插件可以有多个目标。
  • 你可以定义阶段,插件会使用它的 phase 元素开始处理。我们已经使用了 clean 阶段。
  • 你可以通过绑定到插件的目标的方式来配置要执行的任务。我们已经绑定了 echo 任务到 ma ven-antrun-plugin 的 run 目标。
  • 就是这样,Ma ven 将处理剩下的事情。它将下载本地仓库中获取不到的插件,并开始处理。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多