提交 5563a446 authored 作者: wyl's avatar wyl

合并分支 'wyl' 到 'master'

Wyl 查看合并请求 ty_wyl/adaptation-master1!51
package com.zjty.adaptationmaster.adaptor.controller;
import com.alibaba.fastjson.JSONObject;
import com.zjty.adaptationmaster.adaptor.entity.Report;
import com.zjty.adaptationmaster.adaptor.repository.ReportDao;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/send")
public class Test {
@Autowired
private ReportDao reportDao;
@PutMapping("/test/{uuid}")
public ServerResponse test(@PathVariable String uuid){
......@@ -21,4 +28,14 @@ public class Test {
}
return ServerResponse.success();
}
@GetMapping("/testCollection")
public ServerResponse testCollection(){
Report report = new Report();
String[] array = {"aa","bb","cc"};
List<String> jarPath = Arrays.asList(array);
report.setJarPath(jarPath);
reportDao.save(report);
return ServerResponse.success();
}
}
package com.zjty.adaptationmaster.adaptor.entity;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.ProjectPom;
import com.zjty.adaptationmaster.utils.Assessor;
import com.zjty.adaptationmaster.utils.Inspector;
import lombok.AllArgsConstructor;
......@@ -25,6 +26,10 @@ public class Report {
private int fileNum;
private long lineNum;
@Transient
private ProjectPom projectPom;
@Transient
private List<Inspector.Warn> warnList;
private Separate isSeparate;//前后端是否分离
......
package com.zjty.adaptationmaster.adaptor.entity.pomEntity;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Parent;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PomAnalysis {
private Parent parent;
private String modelVersion;
private String groupId;
private String artifactId;
private String packaging;
private String version;
private String name;
private String url;
private String description;
//private List<Prerequisite> prerequisites;//描述了这个项目构建环境中的前提条件。 -->
//private IssueManagement issueManagement;//项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL
//private CiManagement ciManagement;//项目持续集成信息
//private String inceptionYear;//项目创建年份,4位数字。当产生版权信息时需要使用这个值
//private MailingLists mailingLists;//项目相关邮件列表信息
//private Developers developers;//项目开发者列表
//private Contributors contributors;//项目的其他贡献者列表
//private List<License> licenses;//该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license
//private Scm scm;//SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用
//private Organization organization;//描述项目所属组织的各种属性。Maven产生的文档用
//private Build build;//构建项目需要的信息
//private List<Profile> profiles;//在列的项目构建profile,如果被激活,会修改构建处理
//private List<Module> modules;//模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径
//private List<Repository> repositories;//发现依赖和扩展的远程仓库列表
//private List<PluginRepository> pluginRepositiries;//发现插件的远程仓库列表,这些插件用于构建和报表
private List<Dependency> dependencies;
//private Repoting repoting;//该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接
//private DependencyManagement dependencyManagement;//继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息
//private DistributionManagement distributionManagement;//项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库
//private Properties properties;//以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>
}
......@@ -4,12 +4,17 @@ import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.List;
@Entity
@NoArgsConstructor
@Data
public class ProjectPom {
private Parent parent;
@Id
private int id;
//private Parent parent;
private String modelVersion;
private String groupId;
private String artifactId;
......@@ -33,7 +38,7 @@ public class ProjectPom {
//private List<Module> modules;//模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径
//private List<Repository> repositories;//发现依赖和扩展的远程仓库列表
//private List<PluginRepository> pluginRepositiries;//发现插件的远程仓库列表,这些插件用于构建和报表
private List<Dependency> dependencies;
//private List<Dependency> dependencies;
//private Repoting repoting;//该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接
//private DependencyManagement dependencyManagement;//继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息
//private DistributionManagement distributionManagement;//项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库
......
......@@ -3,11 +3,17 @@ package com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.List;
@Entity
@NoArgsConstructor
@Data
public class Dependency {
@Id
private int id;
private String groupId;
private String artifactId;
private String version;
......@@ -42,18 +48,19 @@ public class Dependency {
当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的
依赖。此元素主要用于解决版本冲突问题
*/
private List<Exclusion> exclusions;
//private List<Exclusion> exclusions;
/*
可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。
可选依赖阻断依赖的传递性
*/
private String optional;
private class Exclusion{
private String artifactId;
private String groupId;
}
// private class Exclusion{
// private String artifactId;
// private String groupId;
// }
private List<Dependency> parentDependencies;
//private List<Dependency> parentDependencies;//
private int pomId;
}
package com.zjty.adaptationmaster.utils;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.ProjectPom;
import java.nio.file.Path;
public class AnalysisPom {
public static ProjectPom analysis(Path pomPath){
return null;
}
}
......@@ -51,6 +51,10 @@ public class Inspector {
ruleList.add(new Rule("<artifactId>mysql-connector-java</artifactId>","建议修改为postgre依赖声明"));
ruleList.add(new Rule("public native","这里用到了JNI"));
ruleList.add(new Rule("<packaging>jar</packaging>","建议修改打包方式为war包并排除掉springboot内置的tomcat"));
ruleList.add(new Rule("WebOffice",""));
ruleList.add(new Rule("pdfobject.min.js",""));
ruleList.add(new Rule("pdfobject.js",""));
ruleList.add(new Rule("PDFJS.getDocument",""));
String[] projectSrc = {"D:\\project\\testAccess\\SpringBoot-Labs-master"/*"D:\\project\\bservice","D:\\project\\debug","D:\\project\\glutton"*/};
//String[] projectSrc = {"D:\\project\\testAccess\\Telegram-master"};
......@@ -219,7 +223,7 @@ public class Inspector {
if(path.getFileName().endsWith("pom.xml")){
report.setDependenceManagement(Report.DependenceManagement.MAVEN);
report.setCompileFilePath(path.toString());
report.setProjectPom(AnalysisPom.analysis(path));
SAXReader reader = new SAXReader();
Document document = null;
try {
......
package com.zjty.adaptationmaster;
import com.zjty.adaptationmaster.adaptor.repository.ReportDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class AdaptationMasterApplicationTests {
@Autowired
private ReportDao reportDao;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论