idea maven打包项目遇坑总结(test、audit错误等)

以下是java项目打war/jar包报错常见的坑与解决方法:

 

坑一:test

问题:

项目打包失败,报错如下:

Results :

Tests in error:

(..)

Tests run: 6, Failures: 0, Errors: 1, Skipped: 0

[INFO] ----------------------
[INFO] BUILD FAILURE
[INFO] ----------------------

这是因为在【项目\src\test\java】下编写了java测试文件,项目打包时会执行这些测试用例,如果报错,则不允许打包。

解决方法:

使用【-Dmaven.test.skip=true】跳过test步骤,使打包成功。

 

坑二:缺少依赖的jar包

问题:

项目报错缺少某些jar包,导致打包失败。

解决方法:

1.如果是缺少本地其它项目的jar包,则需要对本地其它项目执行install命令,使得其它项目的jar包部署到本地maven仓库;

然后再打包目标项目,就能找到依赖的jar包了。

2.如果是缺少远程maven仓库的jar包,则可能需要:

(1)修改maven程序的settings.xml文件中的仓库url,选择其它远程仓库(例如公司内部url)

例如修改【D:\apache-maven-3.5.0\conf\settings.xml】,增加以下部分:

<mirrors>
  <mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://repos.xxxcloud.com/repository/maven-public/</url>
  </mirror>
</mirrors>

这样可以将请求远程仓库的url映射到上方的url。(mirrorOf为*)

(2)可能是jar包的版本设置冲突,此时可以使用idea右侧的maven projects中的show dependencies,查看依赖树,找到冲突jar包,记住一个正确的jar包版本号,然后修改pom.xml,对冲突的jar包指定version或exclude某些jar包。

 

坑三:checkstyle

问题:

控制台显示:

Starting audit...

之后就出现某几个文件错误,然后打包失败。

这是因为maven中引入了checkstyle组件,用来检查代码格式的,如果代码格式不符合规范,则不允许打包。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.13</version>
  <dependencies>
    <dependency>
      <groupId>com.puppycrawl.tools</groupId>
      <artifactId>checkstyle</artifactId>
      <version>6.11.1</version>
    </dependency>
  <dependencies>
  
......

解决方法:

可以在打包时增加【-Dcheckstyle.skip=true】,跳过该检查,使打包成功。

 

总结:

1.可以在idea->settings,搜索runner,在VM Options中输入参数,跳过某些检查,使打包成功。

例如跳过test与checkstyle步骤:

-Dmaven.test.skip=true -Dcheckstyle.skip=true

2.可以点击idea右侧的maven projects中的小图标(Toggle 'Skip Tests' Mode),跳过test步骤,使打包成功。

3.可以在pom.xml中增加配置,跳过test步骤,使打包成功。

<properties>
  <skipTests>True</skipTests>

  <jdk.version>1.8</jdk.version>
  <liquibase.version>3.6.1</liquibase.version>
  <war.finalname>mywar</war.finalname>
</properties>

 

相关文章

https://blog.csdn.net/weixin_35020262/article/details/114736794

https://blog.csdn.net/qq_21267357/article/details/92134842

 

后记:

package命令是项目打jar/war包命令

install命令会将打好的jar/war包布署到本地maven仓库,可以让其它项目使用

deploy命令会将打好的jar/war包布署到本地maven仓库和远程maven仓库

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想永不停

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值