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文件进行配置以满足具体的构建要求。

相关推荐
酷爱码18 小时前
IDEA 中 Maven Dependencies 出现红色波浪线的原因及解决方法
java·maven·intellij-idea
有梦想的攻城狮2 天前
maven中的maven-antrun-plugin插件详解
java·maven·插件·antrun
RainbowJie13 天前
从零到一:Maven 快速入门教程
java·maven
RainbowJie13 天前
Maven的生命周期
java·maven
凌辰揽月3 天前
Web后端基础(Maven基础)
前端·pycharm·maven
程序员葵安3 天前
【Java Web】9.Maven高级
java·数据库·后端·maven
eternal__day3 天前
微服务架构下的服务注册与发现:Eureka 深度解析
java·spring cloud·微服务·eureka·架构·maven
青衫红叶4 天前
Idea使用springAI搭建MCP项目
java·spring cloud·maven·intellij-idea·spring-ai
杨DaB4 天前
【JavaWeb】Maven、Servlet、cookie/session
hive·servlet·maven
Aric_Jones5 天前
HashMap 的底层原理
java·eclipse·maven·hashmap·hash