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

git update 规则增删改查

上级 779cc040
......@@ -2,6 +2,7 @@ package com.zjty.inspect;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
public class InspectApplication {
......
package com.zjty.inspect.controller;
import com.zjty.inspect.entity.InspectParameter;
import com.zjty.inspect.entity.Report;
import com.zjty.inspect.service.InspectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 评估接口
* @author mcj
*/
@RestController
......@@ -16,15 +17,25 @@ public class InspectController {
@Autowired
private InspectService inspectService;
/**
* 上传代码进行评估
* @param path
* @return
*/
@GetMapping("/path")
public ResponseEntity inspect(@RequestBody InspectParameter path){
//下载代码
public ResponseEntity inspect(@RequestBody InspectParameter path, MultipartFile file){
//得到压缩包,进行解压
//
InspectParameter inspectParameter = new InspectParameter();
return ResponseEntity.ok(inspectService.inspect(inspectParameter));
//inspectService.inspect(inspectParameter),解析
return ResponseEntity.ok(200);
}
/**
* git下载代码进行评估
* @param path
* @return
*/
@PostMapping
public ResponseEntity inspect1(String path){
System.out.println(path);
......
package com.zjty.inspect.controller;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@ServerEndpoint("/webServer/{uuid}")
@Component
@Slf4j
public class WebSocketServer {
private Logger logger = LoggerFactory.getLogger(getClass());
private static Map<String,WebSocketServer> map = new HashMap<>();
private Session session;
private String uuid;
@OnOpen
public void onOpen(Session session,@PathParam("uuid")String uuid){
this.session = session;
this.uuid = uuid;
//session.getOpenSessions().
//System.out.println("第一个" + uuid);
logger.info("uuid:"+uuid);
map.put(uuid,this);
try {
sendMessage("连接成功");
} catch (IOException e) {
logger.error("websocket IO异常");
}
logger.info("连接成功"+session.getId());
}
@OnClose
public void onClose(Session session){
map.remove(this.uuid);
logger.info("连接关闭"+session.getId());
}
@OnMessage
public void onMessage(Session session,String message){
// try {
//map.get(uuid).sendMessage(message);
logger.info(uuid+"sendMsg"+message);
// } catch (IOException e) {
// e.printStackTrace();
// }
}
@OnError
public void onError(Session session,Throwable error){
logger.info(error.getMessage());
error.printStackTrace();
}
/**
* 实现服务器主动推送
*/
public void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
}
public static void sendIn(String sessionId,String message) throws IOException {
//System.out.println(message);
try {
map.get(sessionId).sendMessage(message);
}catch (Exception e){
log.info("向前台发送日志出错");
//e.printStackTrace();
}
}
}
......@@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* 依赖树
* @author Mcj
* @date 2020-02-18 11:19
*/
......
......@@ -3,6 +3,7 @@ package com.zjty.inspect.entity;
import lombok.Data;
/**
* 依赖树封装
* @author Mcj
* @date 2020-02-21 20:26
*/
......
......@@ -4,10 +4,13 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.ArrayList;
import java.util.List;
/**
* 传入参数,需要保存
* @author Mcj
* @date 2020-02-12 12:35
*/
......@@ -15,7 +18,36 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class InspectParameter {
String path;
List<Rule> ruleList = new ArrayList<>();
@Id
private String id;
/**
* 重构占比
*/
private String proportion;
/**
* 年利率
*/
private String moneyRate;
/**
* 原系统费用
*/
private Integer systemFund;
/**
* 模块数
*/
private Integer modules;
/**
* 每页预算
*/
private Integer pageBudget;
}
......@@ -5,36 +5,83 @@ import com.zjty.inspect.utils.Inspector;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
/**
* 报告
* @author mcj
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Report {
private Language language;
/**
* 主键id uuid
*/
@Id
@Column(length = 48)
private String id;
/**
* git源代码地址
*/
private String gitAddress;
/**
* 架构,整合型还是分离型,根据jsp数量决定
*/
private String framework;
private int fileNum;
private long lineNum;
/**
* 代码管理方式,
*/
private String manager;
/**
* 取名,后端依赖
* 语言
*/
private List<PomDependency> backend;
private String language;
/**
* 生成报告存储地址
*/
private String htmlAddress;
/**
* 适配方式
* 1:适配
* 2:重构
*/
@Column(length = 5)
private Integer recastMethod;
/**
* 总资金(万元)
*/
@Column(length = 10)
private Integer fund;
/**
* 数据创建时间
*/
@Column(name="create_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
@Generated(GenerationTime.INSERT)
private Timestamp createDate;
/**
* 取名。前端依赖
* 数据更新时间
*/
private List<PomDependency> frontend;
@Transient
private List<Inspector.Warn> warnList;
private String compileFilePath;
public DependenceManagement dependenceManagement;
@ElementCollection
public List<String> jarPath;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@Column(name="update_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false)
@Generated(GenerationTime.ALWAYS)
private Timestamp updateDate;
public enum DependenceManagement{
MAVEN,GRADLE,ANT
......
......@@ -3,19 +3,52 @@ package com.zjty.inspect.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
/**
* 规则类
* @author mcj
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Rule {
private String path;
/**
* 主键id
*/
@Id
@Column(length = 48)
private String id;
/**
* 目标关键字
*/
private String target;
private String advice;
/**
* 匹配的文件后缀
*/
private String suffix;
public Rule(String target,String advice){
this.target = target;
this.advice = advice;
}
/**
* 数据创建时间
*/
@Column(name="create_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
@CreatedDate
private Date createDate;
/**
* 数据更新时间
*/
@Column(name="update_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",insertable = false)
@LastModifiedDate
private Date updateDate;
}
......@@ -19,6 +19,10 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
/**
* 解析
* @author mcj
*/
@Service
public class InspectServiceImpl implements InspectService {
......@@ -37,36 +41,36 @@ public class InspectServiceImpl implements InspectService {
suffixLanguageMapping.put("go", Report.Language.GO);
List<Rule> ruleList = inspectParameter.getRuleList();
//com.mysql.cj.jdbc.Driver//com.mysql.jdbc.Driver
ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//net.sourceforge.jtds.jdbc.Driver//sqlserver
ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver
ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
//oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("package.json", "需要nodejs环境"));
ruleList.add(new Rule("public native", "这里用到了JNI"));
ruleList.add(new Rule("<packaging>jar</packaging>", "建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上"));
ruleList.add(new Rule("WebOffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("webOffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("weboffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("Weboffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("pdfobject.min.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
// ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// //net.sourceforge.jtds.jdbc.Driver//sqlserver
// ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// //COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver
// ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
// //oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
// ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
//
// ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("package.json", "需要nodejs环境"));
// ruleList.add(new Rule("public native", "这里用到了JNI"));
// ruleList.add(new Rule("<packaging>jar</packaging>", "建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上"));
// ruleList.add(new Rule("WebOffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("webOffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("weboffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("Weboffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("pdfobject.min.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
String path = inspectParameter.getPath();
//调用下载服务下载源代码
......@@ -89,26 +93,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file1.getName() + "\n");
writer.write("评估时间:" + new Date() + "\n\n");
writer.write("语言:" + report.getLanguage() + "\t");
writer.write("依赖管理工具:" + report.getDependenceManagement() + "\t");
writer.write("架构:" + report.getFramework() + "\n");
writer.write("文件数量:" + report.getFileNum() + "\t");
writer.write("代码行数:" + report.getLineNum() + "\n\n");
writer.write("后端依赖列表:\n");
for (PomDependency dependency : report.getBackend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":" + dependency.getGradle() + "\n");
}
writer.write("\n前端依赖列表:\n");
for (PomDependency dependency : report.getFrontend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":");
}
int j = 1;
for (Inspector.Warn warn : report.getWarnList()) {
writer.write(j++ + "、所在文件:" + warn.getPath() + " 行数:" + warn.getLine() + "行 关键字:" + warn.getKeyWord() + "\n"
+ "建议:" + warn.getSuggest());
}
writer.close();
} catch (IOException e) {
......@@ -129,26 +113,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file.getName() + "\n");
writer.write("评估时间:" + new Date() + "\n\n");
writer.write("语言:" + report.getLanguage() + "\t");
writer.write("依赖管理工具:" + report.getDependenceManagement() + "\t");
writer.write("架构:" + report.getFramework() + "\n");
writer.write("文件数量:" + report.getFileNum() + "\t");
writer.write("代码行数:" + report.getLineNum() + "\n\n");
writer.write("后端依赖列表:\n");
for (PomDependency dependency : report.getBackend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":" + dependency.getGradle() + "\n");
}
writer.write("\n前端依赖列表:\n");
for (PomDependency dependency : report.getFrontend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":");
}
int j = 1;
for (Inspector.Warn warn : report.getWarnList()) {
writer.write(j++ + "、所在文件:" + warn.getPath() + " 行数:" + warn.getLine() + "行 关键字:" + warn.getKeyWord() + "\n"
+ "建议:" + warn.getSuggest());
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
......
......@@ -23,134 +23,65 @@ import java.util.*;
@NoArgsConstructor
public class Inspector {
// public static void main(String[] args) {
//
//
// //Project project = new Project();
//
// Map<String, Report.Language> suffixLanguageMapping = new HashMap<>();
// suffixLanguageMapping.put("java", Report.Language.JAVA);
// suffixLanguageMapping.put("cpp", Report.Language.CPP);
// suffixLanguageMapping.put("vue", Report.Language.VUE);
// suffixLanguageMapping.put("py", Report.Language.PYTHON);
// suffixLanguageMapping.put("jsp", Report.Language.JSP);
// suffixLanguageMapping.put("html", Report.Language.ONLYVIEW);
// suffixLanguageMapping.put("js", Report.Language.JAVASCRIPT);
// suffixLanguageMapping.put("go", Report.Language.GO);
//
// List<Rule> ruleList = new ArrayList<>();
// //com.mysql.cj.jdbc.Driver//com.mysql.jdbc.Driver
// ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//
//
// //net.sourceforge.jtds.jdbc.Driver//sqlserver
// ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// //COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver
// ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
// //oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
// ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
//
// ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
//
// ruleList.add(new Rule("public native", "这里用到了JNI"));
// ruleList.add(new Rule("<packaging>jar</packaging>", "建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上"));
// ruleList.add(new Rule("WebOffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("webOffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("weboffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("Weboffice", "这里用到了weboffice文档展示编辑插件"));
// ruleList.add(new Rule("pdfobject.min.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
//
// String path = Inspector.class.getProtectionDomain().getCodeSource().getLocation().getFile();
// String decode = null;
// try {
// decode = URLDecoder.decode(path, "UTF-8");
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// File outfile = new File(decode);
//
// int i = 0;
// System.out.println("请输入文件夹路径,该文件夹中包含多个项目");
// Scanner scanner = new Scanner(System.in);
// String line = scanner.nextLine();
// File file = new File(line);
// File[] files = file.listFiles();
// for (File file1 : files) {
// Report report = new Inspector(file1.getPath(), suffixLanguageMapping, ruleList).inspect();
//
// File file2 = new File(outfile.getParent() + "/评估报告" + i++ + ".txt");
// if (file2.exists()) {
// file2.delete();
// }
// try {
// System.out.println("生成报告文件" + file2.getAbsolutePath());
// file2.createNewFile();
// FileWriter writer = new FileWriter(file2);
// writer.write("系统名称:" + file1.getName() + "\n");
// writer.write("评估时间:" + new Date() + "\n\n");
// writer.write("语言:" + report.getLanguage() + "\t");
// writer.write("依赖管理工具:" + report.getDependenceManagement() + "\t");
// writer.write("是否前后端分离:" + report.getIsSeparate() + "\t");
// writer.write("架构:" + report.getFramework() + "\n");
// writer.write("数据库类型:" + report.getDatabaseType() + "\t");
// writer.write("文件数量:" + report.getFileNum() + "\t");
// writer.write("代码行数:" + report.getLineNum() + "\n\n");
//
// writer.write("后端依赖列表:\n");
// for (PomDependency dependency : report.getBackend()) {
//
// writer.write("" + dependency.getGroupId() + "\t" + dependency.getArtifactId() + "\t" + dependency.getVersion() + "\n");
// }
// writer.write("\n前端依赖列表:\n");
// for (PomDependency dependency : report.getFrontend()) {
// writer.write("" + dependency.getGroupId() + "\t" + dependency.getArtifactId() + "\t" + dependency.getVersion() + "\n");
// }
//
// int j = 1;
// for (Warn warn : report.getWarnList()) {
// writer.write(j++ + "、所在文件:" + warn.getPath() + " 行数:" + warn.getLine() + "行 关键字:" + warn.getKeyWord() + "\n"
// + "建议:" + warn.getSuggest());
// }
// writer.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// }
/**
* 报告对象
*/
private Report report;
private Map<String, Counter> languageMatchMap;
/**
* 语言
*/
private Map<String, Counter> languageMatchMap ;
/**
* 后缀语言
*/
private Map<String, Report.Language> suffixLanguageMapping;
/**
* 路径
*/
private String path;
/**
* 规则列表
*/
private List<Rule> ruleList;
/**
* 配置文件后缀
* xml:list【路径】
*/
private Map<String, List<Path>> configFileTypePathsMapping;
/**
* 警告,建议
*/
private List<Warn> warnList;
/**
* 后端依赖
*/
private List<PomDependency> jarFiles;
/**
* 前端依赖
*/
private List<PomDependency> jsFiles;
/**
* 版本version
*/
private HashMap<String,String> versionMap = new HashMap<>();
public Inspector(String path, Map<String, Report.Language> suffixLanguageMapping, List<Rule> ruleList) {
this.path = path;
//内存中配置的语言map
this.suffixLanguageMapping = suffixLanguageMapping;
this.ruleList = ruleList;
this.languageMatchMap = new HashMap<>();
for (String s : suffixLanguageMapping.keySet()) {
//配置如:java,0
languageMatchMap.put(s, new Counter());
}
/**
......@@ -268,7 +199,7 @@ public class Inspector {
String s = allLines.get(i);
for (Rule rule : ruleList) {
if (s.indexOf(rule.getTarget()) > -1) {
warnList.add(new Warn(file.toString(), i + 1, rule.getTarget(), rule.getAdvice()));
// warnList.add(new Warn(file.toString(), i + 1, rule.getTarget()));
}
}
}
......@@ -295,8 +226,8 @@ public class Inspector {
//基本信息
@Transactional
public Report analysis() {
report.setFileNum(fileNum);
report.setLineNum(lineNum);
// report.setFileNum(fileNum);
// report.setLineNum(lineNum);
//report.setLanguage(Report.Language.ONLYVIEW);
Report.Language most = null;
int maxnum = 0;
......@@ -307,11 +238,11 @@ public class Inspector {
maxnum = entry.getValue().getNumber();
}
}
report.setLanguage(most == null ? Report.Language.UNKNOW : most);
report.setFramework(most == null ? Report.Language.UNKNOW.name() : most.name());
report.setBackend(jarFiles);
report.setFrontend(jsFiles);
report.setCreateTime(new Date());
// report.setLanguage(most == null ? Report.Language.UNKNOW : most);
// report.setFramework(most == null ? Report.Language.UNKNOW.name() : most.name());
//report.setBackend(jarFiles);
//report.setFrontend(jsFiles);
//report.setCreateTime(new Date());
/**
* 对于具体的配置文件对应的处理方法
* 增加要处理的文件类型需要在这里增加相应的处理方法
......@@ -335,8 +266,8 @@ public class Inspector {
* 编译方式打包方式和打好的包的路径
*/
if (path.getFileName().endsWith("pom.xml")) {
report.setDependenceManagement(Report.DependenceManagement.MAVEN);
report.setCompileFilePath(path.toString());
// report.setDependenceManagement(Report.DependenceManagement.MAVEN);
// report.setCompileFilePath(path.toString());
//解析pom文件
ProjectPom projectPom = AnalysisFile.analysisPom(path);
//设置依赖
......@@ -362,8 +293,8 @@ public class Inspector {
* 编译方式打包方式和打好的包的路径
*/
if (path.getFileName().endsWith("build.gradle")) {
report.setDependenceManagement(Report.DependenceManagement.GRADLE);
report.setCompileFilePath(path.toString());
// report.setDependenceManagement(Report.DependenceManagement.GRADLE);
// report.setCompileFilePath(path.toString());
//解析pom文件
List<PomDependency> pomDependencies = AnalysisFile.analysisGradle(path);
//设置依赖
......@@ -392,19 +323,19 @@ public class Inspector {
}
}
if (report.getLanguage() == Report.Language.JAVA) {
String tips = "该项目采用java语言开发,使用了主流框架,未见生僻插件,适配无明显难点。预计适配工作量较小,适配成功率高";
// TODO: 2020-02-16 人工估计工作量,一天200行代码
}
List<PomDependency> backend1 = report.getBackend();
for (PomDependency pomDependency : backend1) {
String version = pomDependency.getVersion();
String versionString = version.replaceAll("\\$", "").replaceAll("\\{", "").replaceAll("}", "");
if(versionMap.containsKey(versionString)){
pomDependency.setVersion(versionMap.get(versionString));
}
}
report.setWarnList(warnList);
// if (report.getLanguage() == Report.Language.JAVA) {
// String tips = "该项目采用java语言开发,使用了主流框架,未见生僻插件,适配无明显难点。预计适配工作量较小,适配成功率高";
// // TODO: 2020-02-16 人工估计工作量,一天200行代码
// }
// List<PomDependency> backend1 = report.getBackend();
// for (PomDependency pomDependency : backend1) {
// String version = pomDependency.getVersion();
// String versionString = version.replaceAll("\\$", "").replaceAll("\\{", "").replaceAll("}", "");
// if(versionMap.containsKey(versionString)){
// pomDependency.setVersion(versionMap.get(versionString));
// }
// }
// report.setWarnList(warnList);
return report;
}
......
......@@ -5,7 +5,7 @@ spring.profiles.active=dev
# 服务器相关配置
server.port=8079
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
# 日志文件相关配置
# logging.level.org.hibernate.sql=debug
logging.file.path=./log/master.log
......@@ -18,7 +18,7 @@ logging.file.path=./log/master.log
# spring-data-jpa 相关配置
# 指jpa对表生成的策略
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.ddl-auto=create
# 是否显示sql语句
spring.jpa.show-sql=false
# 格式化sql
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论