提交 031e5f4c authored 作者: 马晨俊's avatar 马晨俊

mcj:新增如果不上传源代码的逻辑

上级 f4b91a89
...@@ -144,11 +144,13 @@ public class Inspector { ...@@ -144,11 +144,13 @@ public class Inspector {
public ReportVo inspect() throws IOException { public ReportVo inspect() throws IOException {
//初始化值 //初始化值
initData(); initData();
//扫描文件
scanFiles(); scanFiles();
inspectParameter.setCodeSize((int) codeSize); inspectParameter.setCodeSize((int) codeSize);
report.setFileNum(fileNum); report.setFileNum(fileNum);
report.setFileLine(fileLine); report.setFileLine(fileLine);
log.info("inspect:源代码扫描完成,统计各个文件后缀完成"); log.info("inspect:源代码扫描完成,统计各个文件后缀完成");
//统计项目语言
setReportLanguageAndFrame(); setReportLanguageAndFrame();
//根据扫描结果以及用户配置得出需要使用的规则及技术 //根据扫描结果以及用户配置得出需要使用的规则及技术
ruleTransform(report.getRecastMethod()); ruleTransform(report.getRecastMethod());
...@@ -537,94 +539,96 @@ public class Inspector { ...@@ -537,94 +539,96 @@ public class Inspector {
} }
//文件读取 //文件读取
Files.walkFileTree(Paths.get(inspectParameter.getSourceAddress()), new FileVisitor<Path>() { if(inspectParameter.getSourceAddress()!=null){
@Override Files.walkFileTree(Paths.get(inspectParameter.getSourceAddress()), new FileVisitor<Path>() {
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { @Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
return FileVisitResult.CONTINUE; return FileVisitResult.CONTINUE;
} }
@Override @Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
//扫描jar文件时 //扫描jar文件时
if (file.getFileName().toString().endsWith(".jar")) { if (file.getFileName().toString().endsWith(".jar")) {
//新建一个pom对象 //新建一个pom对象
ProjectPom projectPom = new ProjectPom(); ProjectPom projectPom = new ProjectPom();
//截取jar名称 //截取jar名称
String patten = RegexUtil.patten(file.getFileName().toString()); String patten = RegexUtil.patten(file.getFileName().toString());
//新建一个依赖对象 //新建一个依赖对象
PomDependency pomDependency = new PomDependency(); PomDependency pomDependency = new PomDependency();
pomDependency.setArtifactId(patten); pomDependency.setArtifactId(patten);
projectPom.getDependencies().add(pomDependency); projectPom.getDependencies().add(pomDependency);
//当参数为1时代表上传者管理员,代码可绝对信任,将jar名称当作可支持依赖添加进规则库中 //当参数为1时代表上传者管理员,代码可绝对信任,将jar名称当作可支持依赖添加进规则库中
if (inspectParameter.getAdmin() == 1) { if (inspectParameter.getAdmin() == 1) {
//新建规则对象 //新建规则对象
Rule rule = new Rule(); Rule rule = new Rule();
//设置适配技术id //设置适配技术id
rule.setTechnologyId(techJavaSupport.getId()); rule.setTechnologyId(techJavaSupport.getId());
rule.setTarget(patten); rule.setTarget(patten);
//设置文件后缀 //设置文件后缀
rule.setSuffix("*"); rule.setSuffix("*");
rule.setId(UUIDUtil.getUUID()); rule.setId(UUIDUtil.getUUID());
rule.setTechnologyName(techJavaSupport.getTechnologyName()); rule.setTechnologyName(techJavaSupport.getTechnologyName());
//做规则查询,不用去数据库查询 //做规则查询,不用去数据库查询
if (!ruleMap.containsKey(patten + ":" + rule.getSuffix())) { if (!ruleMap.containsKey(patten + ":" + rule.getSuffix())) {
rules.add(rule); rules.add(rule);
ruleMap.put(patten + ":" + rule.getSuffix(), rule); ruleMap.put(patten + ":" + rule.getSuffix(), rule);
}
//设置当前依赖为可支持
pomDependency.setSupport(1);
} else {
//为普通用户上传,依赖需要检查是否支持。
int i = valiWarn(ruleList, file, patten, 0);
//如果值为0则代表是有不支持技术到匹配
pomDependency.setSupport(i);
} }
//设置当前依赖为可支持 dependencyVo.add(projectPom);
pomDependency.setSupport(1);
} else {
//为普通用户上传,依赖需要检查是否支持。
int i = valiWarn(ruleList, file, patten, 0);
//如果值为0则代表是有不支持技术到匹配
pomDependency.setSupport(i);
} }
dependencyVo.add(projectPom); fileNum += 1;
} try {
fileNum += 1; List<String> allLines = Files.readAllLines(file);
try { fileLine += allLines.size();
List<String> allLines = Files.readAllLines(file); } catch (MalformedInputException e) {
fileLine += allLines.size(); return FileVisitResult.CONTINUE;
} catch (MalformedInputException e) { } catch (IOException e) {
return FileVisitResult.CONTINUE; e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
for (Map.Entry<String, PathMatcher> entry : languageSuffixMatcherMapping.entrySet()) {
//通过正则表达式匹配.java类型后缀文件,并+1
if (entry.getValue().matches(file)) {
long length = file.toFile().length();
codeSize += length / 1024;
languageMatchMap.get(entry.getKey()).plus();
} }
} for (Map.Entry<String, PathMatcher> entry : languageSuffixMatcherMapping.entrySet()) {
for (Map.Entry<PathMatcher, String> entry : configFileMatcherSuffixMapping.entrySet()) { //通过正则表达式匹配.java类型后缀文件,并+1
//通过配置文件正则表达式匹配.xml文件,记录文件地址 if (entry.getValue().matches(file)) {
if (entry.getKey().matches(file)) { long length = file.toFile().length();
configFileTypePathsMapping.get(entry.getValue()).add(file); codeSize += length / 1024;
languageMatchMap.get(entry.getKey()).plus();
}
} }
} for (Map.Entry<PathMatcher, String> entry : configFileMatcherSuffixMapping.entrySet()) {
for (Map.Entry<PathMatcher, String> entry : ruleSuffixMap.entrySet()) { //通过配置文件正则表达式匹配.xml文件,记录文件地址
//通过规则匹配后缀正则表达式匹配,记录匹配上的文件地址 if (entry.getKey().matches(file)) {
if (entry.getKey().matches(file)) { configFileTypePathsMapping.get(entry.getValue()).add(file);
ruleSuffixFilePathMap.get(entry.getValue()).add(file); }
}
for (Map.Entry<PathMatcher, String> entry : ruleSuffixMap.entrySet()) {
//通过规则匹配后缀正则表达式匹配,记录匹配上的文件地址
if (entry.getKey().matches(file)) {
ruleSuffixFilePathMap.get(entry.getValue()).add(file);
}
} }
return FileVisitResult.CONTINUE;
} }
return FileVisitResult.CONTINUE;
}
@Override @Override
public FileVisitResult visitFileFailed(Path file, IOException exc) { public FileVisitResult visitFileFailed(Path file, IOException exc) {
return FileVisitResult.CONTINUE; return FileVisitResult.CONTINUE;
} }
@Override @Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) { public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
return FileVisitResult.CONTINUE; return FileVisitResult.CONTINUE;
} }
}); });
}
} }
public class Counter { public class Counter {
private int i = 0; private int i = 0;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论