常见maven插件

常用maven插件

spring-boot-maven-plugin

spring-boot-maven-plugin 是 Spring Boot 的官方 Maven 插件,用于构建和运行 Spring Boot 应用。使用 spring-boot-maven-plugin 的主要优点:

  1. 简化 Spring Boot 应用的 Maven 构建配置。
  2. 在 Maven 生命周期内运行 Spring Boot 应用。
  3. 为 Spring Boot 生成可以执行 jar 包。(可执行 jar)
  4. 直接在 IDE(如 Eclipse、IDEA) 中运行 Spring Boot 应用。

具体使用方式:在 pom.xml 中添加插件配置:

<build>
 <plugins>
   <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
        <mainClass>com.xxx.xxx.xxxApplication</mainClass>
        <layout>JAR</layout>
    </configuration>
   </plugin>
 </plugins>
</build>

然后可以直接执行:mvn spring-boot:run来运行应用。

执行 mvn clean package 就可以生成可执行 jar 了。

maven-source-plugin

maven-source-plugin 是 Maven 的一个插件,用于生成源代码 jar 包。在发布项目时,通常会一起发布二进制 jar 和源代码 jar 两个包。

  • 二进制 jar 供正常的项目引用。
  • 源代码 jar 供其他开发者查看和学习源代码。maven-source-plugin 就可以自动生成源代码 jar 包。

使用步骤:

  1. 在 pom.xml 中配置插件:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  1. 执行 mvn clean deploy 会生成二进制 jar 和源代码 jar.

  2. 也可以单独执行生成源代码 jar:

   mvn source:jar

jacoco-maven-plugin

jacoco-maven-plugin 是用于集成 Jacoco(Java Code Coverage)代码覆盖率工具到 Maven 构建过程中的插件。它可以帮助开发人员了解他们的 Java 代码被测试覆盖的程度,即代码的哪些部分被测试用例执行,哪些部分没有被覆盖到。通过这种方式,开发人员可以更好地了解代码的质量和测试情况,从而更有针对性地进行测试和代码改进。

以下是 jacoco-maven-plugin 的一些详细解释:

1. 配置 Jacoco 插件

要在 Maven 项目中使用 Jacoco 插件,需要在项目的 pom.xml 文件中配置 jacoco-maven-plugin 插件。通常,该插件位于 <build> 标签下的 <plugins> 子标签中。

<build>
    <plugins>
        <!-- 其他插件配置 -->
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.7</version>
            <executions>
                <!-- 插件的执行阶段配置 -->
            </executions>
            <configuration>
                <!-- 插件的配置选项 -->
            </configuration>
        </plugin>
        <!-- 其他插件配置 -->
    </plugins>
</build>

2. 执行阶段配置

<executions> 标签中,可以定义插件的执行阶段(Execution)。常见的执行阶段包括:

  • prepare-agent:在测试之前初始化 Jacoco 代理,用于收集代码覆盖率数据。
  • report:生成 Jacoco 代码覆盖率报告,通常在 test 阶段后执行。

3. 插件的配置选项

<configuration> 标签中,可以配置插件的各种选项,例如:

  • destFile:指定代码覆盖率数据文件的输出路径。
  • append:如果为 true,则在多次构建中保留历史数据,否则每次构建都会清除之前的数据。
  • excludes:指定需要排除的类或包,不计入代码覆盖率。
  • includes:指定需要计算代码覆盖率的类或包。
  • address:是否启用远程调试,用于生成更准确的代码覆盖率信息等。

4. 生成代码覆盖率报告

运行 Maven 命令 mvn test 时,jacoco-maven-plugin 会自动执行 prepare-agent 阶段来初始化 Jacoco 代理,并在测试执行期间收集代码覆盖率数据。然后在 test 阶段之后,jacoco-maven-plugin 会执行 report 阶段,根据收集到的数据生成代码覆盖率报告。

生成的报告通常位于 target/site/jacoco 目录下。你可以在浏览器中打开对应的 HTML 文件来查看代码覆盖率报告,了解哪些代码被覆盖,哪些代码未被覆盖。

5. 使用代码覆盖率报告

代码覆盖率报告可以帮助开发人员确定测试用例是否足够充分,是否需要添加更多的测试场景,以提高代码质量和稳定性。同时,也可以帮助定位测试覆盖率较低的代码区域,从而更有针对性地进行代码优化和改进。

6. 项目使用示例

    <plugin>
		<groupId>org.jacoco</groupId>
		<artifactId>jacoco-maven-plugin</artifactId>
		<version>0.8.5</version>
		<executions>
			<execution>
				<id>pre-test</id>
				<goals>
					<goal>prepare-agent</goal>
				</goals>
			</execution>
			<execution>
				<id>post-test</id>
				<phase>test</phase>
				<goals>
					<goal>report</goal>
				</goals>
			</execution>
		</executions>
	</plugin>
posted @ 2023-08-25 13:48  EndeavourOne  阅读(156)  评论(0编辑  收藏  举报