DevTestOpsGuide

开发 测试 上线 的经验与笔记

View project on GitHub

Maven pmd 代码扫描

SonarQube质量扫描、JaCoCo测试覆盖率等优先使用无侵入的方式,不要写到pom.xml

mvn -V -U org.jacoco:jacoco-maven-plugin:prepare-agent verify org.jacoco:jacoco-maven-plugin:report org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \
  -D sonar.projectName="${projectName}" \
  -D sonar.projectKey=${projectKey} \
  -D sonar.host.url=${sonarURL} \
  -D sonar.login=${sonarLogin} \
  -s /usr/share/maven/conf/settings-自定义后缀.xml
mvn org.codehaus.mojo:findbugs-maven-plugin:findbugs
mvn pmd:pmd
mvn pmd:cpd
mvn checkstyle:checkstyle

后面几句省略了其他参数,如果编译或单元测试困难可以加下面的参数

  -D maven.compiler.failOnError=false \
  -D maven.test.failure.ignore=true \

非 Maven 官方插件使用全名而不是配置插件群组

setting.xml中配置插件前缀可以缩短命令长度,方便手动使用命令,但是降低了迁移的便捷性

<settings>
  <pluginGroups>
    <pluginGroup>org.jacoco</pluginGroup>
    <pluginGroup>org.codehaus.mojo</pluginGroup>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
  </pluginGroups>
</settings>

这里省略了其他参数

mvn -V -U jacoco:prepare-agent verify jacoco:report sonar:sonar
mvn findbugs:findbugs

在 Jenkins 中可以安装 Warnings Next Generation Plugin 插件,
使用 Record compiler warnings and static analysis results
显示各种报告如: java, findbugs, pmd, cpd, checkstyle

其中 Maven 官方的两个插件的使用可以参考::
https://maven.apache.org/plugins/maven-pmd-plugin/
http://maven.apache.org/plugins/maven-checkstyle-plugin/

SonarQube 的使用可以参考:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

提交较为频繁的项目不要设置触发器,耗时较长的在非上班时间运行以减少虚拟机资源占用

H H(0-7),H(12-13),18 * * *