Maven常用插件清单

Maven 是一个强大的项目管理和构建工具,它使用插件来执行各种构建生命周期任务。以下是常用的一些 Maven 构建插件及其主要用途:

1. Maven Compiler Plugin

  • 用途:编译Java源代码。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
      </plugins>
    </build>

2. Maven Surefire Plugin

  • 用途:运行单元测试(JUnit或TestNG)。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M5</version>
        </plugin>
      </plugins>
    </build>

3. Maven Failsafe Plugin

  • 用途:运行集成测试。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>3.0.0-M5</version>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

4. Maven Jar Plugin

  • 用途:打包成JAR文件。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
      </plugins>
    </build>

5. Maven War Plugin

  • 用途:打包成WAR文件,用于Web应用程序。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.3.1</version>
        </plugin>
      </plugins>
    </build>

6. Maven Shade Plugin

  • 用途:创建包含所有依赖的"uber"JAR,适合独立运行的应用程序。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.2.4</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

7. Maven Assembly Plugin

  • 用途:创建自定义分发包,可以包括项目的输出、依赖和任意文件。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.3.0</version>
          <configuration>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
          <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

8. Maven Dependency Plugin

  • 用途:处理依赖关系,例如复制依赖到特定目录、分析依赖等。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.2</version>
          <executions>
            <execution>
              <id>copy-dependencies</id>
              <phase>package</phase>
              <goals>
                <goal>copy-dependencies</goal>
              </goals>
              <configuration>
                <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

9. Maven Clean Plugin

  • 用途 :清理项目的工作目录,删除target目录中的生成文件。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
      </plugins>
    </build>

10. Maven Site Plugin

  • 用途:生成项目站点文档,包含报告和其他信息。

  • 配置示例

    xml 复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.9.1</version>
        </plugin>
      </plugins>
    </build>

总结

这些插件覆盖了从编译、测试、打包到部署的整个Maven构建生命周期的不同方面。根据项目需求,可以选择合适的插件,并通过POM文件进行配置以满足具体的构建要求。

相关推荐
何中应12 小时前
Maven项目没有Maven工具,IDEA没有识别到该项目是Maven项目怎么办?
java·后端·maven·intellij-idea
甜鲸鱼18 小时前
在Maven多模块项目中进行跨模块的SpringBoot单元测试
spring boot·单元测试·maven
有梦想的攻城狮2 天前
快速搭建Maven仓库服务
java·maven·仓库·nexus
悟能不能悟2 天前
mvn能只test单独一个文件吗
maven
Rebecca.Yan2 天前
Maven下载与配置&&对Java项目的理解
java·开发语言·maven
慕木兮人可2 天前
idea安装maven 拉取依赖失败的解决办法
java·maven·intellij-idea
二饭3 天前
解决Maven“无法将类 XXXXX 中的构造器 XXXXXX 应用到给定类型”错误
java·spring·maven
老马啸西风3 天前
maven 发布到中央仓库之 Ignore Licence-04
java·ci/cd·maven
麦兜*3 天前
Spring Boot 集成Reactive Web 性能优化全栈技术方案,包含底层原理、压测方法论、参数调优
java·前端·spring boot·spring·spring cloud·性能优化·maven
胚芽鞘6814 天前
关于java项目中maven的理解
java·数据库·maven