From 36eccb73587dbf4b9e80da3f7ca956ac49765f6d Mon Sep 17 00:00:00 2001 From: luchang Date: Fri, 26 Mar 2021 10:37:49 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=8E=92=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=A8=A1=E5=9D=97=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E6=94=AF=E6=8C=81=E6=8E=92=E9=99=A4=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A8=A1=E5=9D=97=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=9B2.=E4=BF=AE=E5=A4=8D=E7=8E=AF=E5=A2=83=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E7=8E=87=E7=BB=9F=E8=AE=A1=E6=A8=A1=E5=9D=97=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basetech/entity/CoverBaseRequest.java | 6 ++++ .../service/impl/CodeCovServiceImpl.java | 32 +++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xiaoju/basetech/entity/CoverBaseRequest.java b/src/main/java/com/xiaoju/basetech/entity/CoverBaseRequest.java index e643770..ecc3524 100644 --- a/src/main/java/com/xiaoju/basetech/entity/CoverBaseRequest.java +++ b/src/main/java/com/xiaoju/basetech/entity/CoverBaseRequest.java @@ -35,6 +35,12 @@ public class CoverBaseRequest { */ private String subModule; + /** + * 同一个git仓库可能存在多个模块,excludeModule为相对路径,当工程模块中不需要统计此模块时进行配置 + * 例如: assembly + */ + private String excludeModule; + /** * 1、全量;2、增量 */ diff --git a/src/main/java/com/xiaoju/basetech/service/impl/CodeCovServiceImpl.java b/src/main/java/com/xiaoju/basetech/service/impl/CodeCovServiceImpl.java index b158fc3..dde6fd0 100644 --- a/src/main/java/com/xiaoju/basetech/service/impl/CodeCovServiceImpl.java +++ b/src/main/java/com/xiaoju/basetech/service/impl/CodeCovServiceImpl.java @@ -7,6 +7,7 @@ import com.xiaoju.basetech.entity.*; import com.xiaoju.basetech.service.CodeCovService; import com.xiaoju.basetech.util.*; +import java.util.Arrays; import jodd.io.FileUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; @@ -305,6 +306,30 @@ public void triggerEnvCov(EnvCoverRequest envCoverRequest) { log.info("{}计算覆盖率具体步骤...计算增量代码失败,uuid={}", Thread.currentThread().getName(), coverageReport.getUuid()); return; } + }else { + // 将配置的 subModule 和 excludeModule进行处理 + DeployInfoEntity deployInfo = new DeployInfoEntity(); + deployInfo.setUuid(coverageReport.getUuid()); + deployInfo.setCodePath(coverageReport.getNowLocalPath()); + if (StringUtils.isEmpty(envCoverRequest.getSubModule())){ + String pomPath = deployInfo.getCodePath() + "/pom.xml"; + ArrayList moduleList = MavenModuleUtil.getValidModules(pomPath); + // 将需要排除的模块进行处理 + if (!StringUtils.isEmpty(envCoverRequest.getExcludeModule())){ + String[] excludeModules = envCoverRequest.getExcludeModule().split(","); + // 删除掉需要排除的模块 + moduleList.removeAll(Arrays.asList(excludeModules)); + } + StringBuilder moduleNames = new StringBuilder(""); + for (String module : moduleList) { + moduleNames.append(module + ","); + } + deployInfo.setChildModules(moduleNames.toString()); + }else { + // 只处理指定的模块 + deployInfo.setChildModules(envCoverRequest.getSubModule()); + } + deployInfoDao.updateDeployInfo(deployInfo); } calculateEnvCov(coverageReport); }).start(); @@ -337,10 +362,13 @@ public void calculateEnvCov(CoverageReportEntity coverageReport) { if (exitCode == 0) { CmdExecutor.executeCmd(new String[]{"rm -rf " + REPORT_PATH + coverageReport.getUuid()}, CMD_TIMEOUT); - String[] moduleList = deployInfoEntity.getChildModules().split(","); + String[] moduleList = {}; + if (!StringUtils.isEmpty(deployInfoEntity.getChildModules())){ + moduleList = deployInfoEntity.getChildModules().split(","); + } StringBuilder builder = new StringBuilder("java -jar " + JACOCO_PATH + " report " + deployInfoEntity.getCodePath() + "/jacoco.exec "); // 单模块的时候没有moduleList - if (moduleList.length == 0) { + if (moduleList == null || moduleList.length == 0) { builder.append("--sourcefiles ./src/main/java/ "); builder.append("--classfiles ./target/classes/com/ "); } else {