前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用Maven插件

常用Maven插件

作者头像
心平气和
发布2021-09-24 15:46:11
6410
发布2021-09-24 15:46:11
举报

Maven现在是Java开发依赖包管理的标准了,大部分人可能都只会熟悉

编写dependency标签,而真正编译,打包都是通过插件来完成的,这篇文章整理下工作中用的比较多的Maven插件,更详细的Maven插件请参考官网:https://maven.apache.org/plugins/index.html。

一、标准插件

1、clean

清除编译好的包,一般和其它插件一起用,如mvn clean install

2、compiler

编译源码;

可通过compilerVersion属性设置JDK版本

代码语言:javascript
复制
<configuration>
  <compilerVersion>1.8</compilerVersion>
</configuration>

还可设置源码版本和目标字节码的版本:

代码语言:javascript
复制
<configuration>
    <source>1.8</source>
    <target>1.8</target>
</configuration>

还可以通过arg来传递参数:

代码语言:javascript
复制
<configuration>
  <compilerArgs>
    <arg>-verbose</arg>
    <arg>-Xlint:all,-options,-path</arg>
  </compilerArgs>
</configuration>

3、deploy

部署到远程仓库中,一般不用设置什么参数;

4、failsafe

JUnit集成测试

5、install

安装到本地仓库

6、resources

拷贝资源到输出目录中;

可通过resources.resource.directory指定额外要打包的资源;

代码语言:javascript
复制
<resources>
   <resource>
     <directory>src/my-resources</directory>
   </resource>
 </resources>

还可设置字符集:

代码语言:javascript
复制
<configuration>
   <encoding>UTF-8</encoding>
</configuration>

7、site

生成站点,还可启动一个web服务器进行浏览;

常用属性有port和tempWebappDirectory

代码语言:javascript
复制
<configuration>
          <port>9000</port>
          <tempWebappDirectory>${basedir}/target/site/tempdir</tempWebappDirectory>
        </configuration>

8、verifier

用于集成测试

9、surefire

运行单元测试

常用参数有:argLine,给单元测试设置参数;

代码语言:javascript
复制
<configuration>
  <argLine>-Djava.security.manager -Djava.security.policy=${basedir}/src/test/resources/java.policy</argLine>
</configuration>

还可以并行测试

代码语言:javascript
复制
 <configuration>
   <parallel>methods</parallel>
   <threadCount>10</threadCount>
 </configuration>

二、surefire-report

生成测试报告;

常用参数有:

outputDirectory:报告生成目录

代码语言:javascript
复制
 <configuration>
     <outputDirectory>${basedir}/target/newsite</outputDirectory>
 </configuration>

三、jacoco

生成代码覆盖率报告;

官网地址:https://www.eclemma.org/jacoco/trunk/doc/maven.html

具体使用如下:

1、引入依赖:

代码语言:javascript
复制
<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.8-SNAPSHOT</version>
</plugin>

2、配置插件

代码语言:javascript
复制
<project>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <!-- select non-aggregate reports -->
              <report>report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
</project>

它定义了不同的goal,最常用的是prepare-agent和report。

如果想查看增量覆盖率,可通过工具diff-cover处理,这是一个Python脚本,需要先安装Python相关环境;

四、assembly插件

主要作用是制作项目分发包,包中包含了项目的可执行文件、源代码等等。支持常用的文件格式:zip、tar.gz、jar 和 war 等;

五、archetype插件

用于生成项目骨架;

直接执行以下命令就可以生成项目框架:

代码语言:javascript
复制
mvn archetype:generate

多机房RPC调用实践

Raft算法之日志篇

扩展Redis:增加Redis命令

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员升级之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档