Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
adaptation-master
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
912协同工作系统
项目监控管理工具
adaptation-master
Commits
cf800cde
提交
cf800cde
authored
1月 03, 2020
作者:
zhangshuang
浏览文件
操作
浏览文件
下载
差异文件
zs
上级
bd40cf48
7f744813
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
26 个修改的文件
包含
502 行增加
和
15 行删除
+502
-15
pom.xml
pom.xml
+10
-0
MANIFEST.MF
src/main/java/META-INF/MANIFEST.MF
+3
-0
AdaptationController.java
...tationmaster/adaptor/controller/AdaptationController.java
+4
-0
InspectController.java
...daptationmaster/adaptor/controller/InspectController.java
+8
-0
Test.java
...va/com/zjty/adaptationmaster/adaptor/controller/Test.java
+8
-0
Project.java
...ava/com/zjty/adaptationmaster/adaptor/entity/Project.java
+1
-1
Report.java
...java/com/zjty/adaptationmaster/adaptor/entity/Report.java
+15
-6
ReportEntity.java
...om/zjty/adaptationmaster/adaptor/entity/ReportEntity.java
+50
-0
Rule.java
...n/java/com/zjty/adaptationmaster/adaptor/entity/Rule.java
+4
-0
PomAnalysis.java
...daptationmaster/adaptor/entity/pomEntity/PomAnalysis.java
+45
-0
ProjectPom.java
...adaptationmaster/adaptor/entity/pomEntity/ProjectPom.java
+46
-0
Dependency.java
...ster/adaptor/entity/pomEntity/SecondFloor/Dependency.java
+66
-0
Parent.java
...onmaster/adaptor/entity/pomEntity/SecondFloor/Parent.java
+8
-0
DependencyDao.java
...ty/adaptationmaster/adaptor/repository/DependencyDao.java
+1
-0
ReportDao.java
...m/zjty/adaptationmaster/adaptor/repository/ReportDao.java
+2
-1
AdaptationService.java
...y/adaptationmaster/adaptor/service/AdaptationService.java
+3
-0
AdaptationServiceImpl.java
...ionmaster/adaptor/service/Impl/AdaptationServiceImpl.java
+25
-0
InspectServiceImpl.java
...tationmaster/adaptor/service/Impl/InspectServiceImpl.java
+58
-3
InspectService.java
...zjty/adaptationmaster/adaptor/service/InspectService.java
+4
-0
AnalysisPom.java
...ain/java/com/zjty/adaptationmaster/utils/AnalysisPom.java
+22
-0
Assessor.java
src/main/java/com/zjty/adaptationmaster/utils/Assessor.java
+81
-0
FileUtil.java
src/main/java/com/zjty/adaptationmaster/utils/FileUtil.java
+27
-1
Inspector.java
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
+0
-0
ReadedFileTask.java
.../java/com/zjty/adaptationmaster/utils/ReadedFileTask.java
+0
-3
AdaptationMasterApplicationTests.java
...ty/adaptationmaster/AdaptationMasterApplicationTests.java
+4
-0
YmlConfig.java
src/test/java/com/zjty/adaptationmaster/YmlConfig.java
+7
-0
没有找到文件。
pom.xml
浏览文件 @
cf800cde
...
@@ -157,6 +157,16 @@
...
@@ -157,6 +157,16 @@
<artifactId>
commons-lang3
</artifactId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.5
</version>
<version>
3.5
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.thoughtworks.xstream
</groupId>
<artifactId>
xstream
</artifactId>
<version>
1.4.10
</version>
</dependency>
<dependency>
<groupId>
com.thoughtworks.xstream
</groupId>
<artifactId>
xstream
</artifactId>
<version>
1.4.10
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/META-INF/MANIFEST.MF
0 → 100644
浏览文件 @
cf800cde
Manifest-Version: 1.0
Main-Class: com.zjty.adaptationmaster.utils.Inspector
src/main/java/com/zjty/adaptationmaster/adaptor/controller/AdaptationController.java
浏览文件 @
cf800cde
...
@@ -33,6 +33,10 @@ public class AdaptationController {
...
@@ -33,6 +33,10 @@ public class AdaptationController {
System
.
out
.
print
(
JSON
.
toJSONString
(
adaptRequest
));
System
.
out
.
print
(
JSON
.
toJSONString
(
adaptRequest
));
return
adaptationService
.
compile
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
());
return
adaptationService
.
compile
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
());
}
}
@PostMapping
(
"/uploadDeploy"
)
public
ServerResponse
uploadDeploy
(
@RequestBody
AdaptRequest
adaptRequest
){
return
adaptationService
.
uploadDeploy
(
adaptRequest
.
getProject
(),
adaptRequest
.
getPath
());
}
@PostMapping
(
"/deploy"
)
@PostMapping
(
"/deploy"
)
public
ServerResponse
deploy
(
@RequestBody
AdaptRequest
adaptRequest
){
public
ServerResponse
deploy
(
@RequestBody
AdaptRequest
adaptRequest
){
return
adaptationService
.
deploy
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
());
return
adaptationService
.
deploy
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
());
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/controller/InspectController.java
浏览文件 @
cf800cde
...
@@ -4,6 +4,7 @@ import com.zjty.adaptationmaster.adaptor.entity.Project;
...
@@ -4,6 +4,7 @@ import com.zjty.adaptationmaster.adaptor.entity.Project;
import
com.zjty.adaptationmaster.adaptor.service.InspectService
;
import
com.zjty.adaptationmaster.adaptor.service.InspectService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RestController
...
@@ -11,8 +12,15 @@ import org.springframework.web.bind.annotation.*;
...
@@ -11,8 +12,15 @@ import org.springframework.web.bind.annotation.*;
public
class
InspectController
{
public
class
InspectController
{
@Autowired
@Autowired
private
InspectService
inspectService
;
private
InspectService
inspectService
;
@PutMapping
(
"/inspect"
)
@PutMapping
(
"/inspect"
)
public
ServerResponse
inspect
(
@RequestBody
Project
projectId
){
public
ServerResponse
inspect
(
@RequestBody
Project
projectId
){
return
inspectService
.
inspect
(
projectId
);
return
inspectService
.
inspect
(
projectId
);
}
}
@GetMapping
(
"/{id}"
)
public
ResponseEntity
report
(
@PathVariable
Integer
id
){
return
ResponseEntity
.
ok
(
inspectService
.
getReportById
(
id
));
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/Test.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
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
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.List
;
@RestController
@RestController
@RequestMapping
(
"/send"
)
@RequestMapping
(
"/send"
)
public
class
Test
{
public
class
Test
{
@Autowired
private
ReportDao
reportDao
;
@PutMapping
(
"/test/{uuid}"
)
@PutMapping
(
"/test/{uuid}"
)
public
ServerResponse
test
(
@PathVariable
String
uuid
){
public
ServerResponse
test
(
@PathVariable
String
uuid
){
...
@@ -21,4 +28,5 @@ public class Test {
...
@@ -21,4 +28,5 @@ public class Test {
}
}
return
ServerResponse
.
success
();
return
ServerResponse
.
success
();
}
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Project.java
浏览文件 @
cf800cde
...
@@ -60,7 +60,7 @@ public class Project {
...
@@ -60,7 +60,7 @@ public class Project {
private
boolean
compileSuccess
=
false
;
private
boolean
compileSuccess
=
false
;
@OneToOne
@OneToOne
private
Report
report
;
private
Report
Entity
report
;
private
boolean
deploySuccess
=
false
;
private
boolean
deploySuccess
=
false
;
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Report.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.ProjectPom
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency
;
import
com.zjty.adaptationmaster.utils.Assessor
;
import
com.zjty.adaptationmaster.utils.Inspector
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
...
@@ -8,25 +12,30 @@ import javax.persistence.*;
...
@@ -8,25 +12,30 @@ import javax.persistence.*;
import
java.nio.file.Path
;
import
java.nio.file.Path
;
import
java.util.List
;
import
java.util.List
;
@Entity
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
Report
{
public
class
Report
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Integer
id
;
private
Integer
id
;
private
Language
language
;
//语言
private
Language
language
;
//语言
private
String
framework
;
//架构
private
String
framework
;
//架构
private
Separate
isSeparate
;
//前后端是否分离
private
DatabaseType
databaseType
;
//数据库类型
private
DatabaseType
databaseType
;
//数据库类型
private
int
fileNum
;
private
long
lineNum
;
private
List
<
Dependency
>
dependencies
;
@Transient
private
ProjectPom
projectPom
;
@Transient
private
List
<
Inspector
.
Warn
>
warnList
;
private
Separate
isSeparate
;
//前后端是否分离
private
String
compileFilePath
;
//项目编译文件,如果是maven项目,用maven编译,那么就是pom.xml
private
String
compileFilePath
;
//项目编译文件,如果是maven项目,用maven编译,那么就是pom.xml
public
DependenceManagement
dependenceManagement
;
//版本管理方式
public
DependenceManagement
dependenceManagement
;
//版本管理方式
@ElementCollection
@ElementCollection
public
List
<
String
>
jarPath
;
//依赖文件的地址列表,用于编译,如果不是用版本管理工具
public
List
<
String
>
jarPath
;
//依赖文件的地址列表,用于编译,如果不是用版本管理工具
private
String
packagePath
;
private
String
packagePath
;
private
int
fileNum
;
public
enum
DependenceManagement
{
public
enum
DependenceManagement
{
MAVEN
,
GRADLE
,
ANT
MAVEN
,
GRADLE
,
ANT
...
@@ -38,6 +47,6 @@ public class Report {
...
@@ -38,6 +47,6 @@ public class Report {
MYSQL
,
ORACLE
,
SQLSERVER
,
POSTGRE
MYSQL
,
ORACLE
,
SQLSERVER
,
POSTGRE
}
}
public
enum
Language
{
public
enum
Language
{
JAVA
,
PYTHON
,
CPP
,
JSP
,
ONLYVIEW
JAVA
,
PYTHON
,
CPP
,
JSP
,
ASP
,
ONLYVIEW
,
UNKNOW
,
JAVASCRIPT
,
GO
}
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/ReportEntity.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency
;
import
com.zjty.adaptationmaster.utils.Inspector
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.*
;
import
java.util.List
;
/**
* 返回
* @author Mcj
* @date 2020-01-03 10:33
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ReportEntity
{
@Id
@GeneratedValue
private
Integer
id
;
private
Report
.
Language
language
;
//语言
private
String
framework
;
//架构
private
Report
.
DatabaseType
databaseType
;
//数据库类型
private
int
fileNum
;
private
long
lineNum
;
@Column
(
columnDefinition
=
"text"
)
private
String
dependence
;
private
Report
.
Separate
isSeparate
;
//前后端是否分离
private
String
compileFilePath
;
//项目编译文件,如果是maven项目,用maven编译,那么就是pom.xml
public
Report
.
DependenceManagement
dependenceManagement
;
//版本管理方式
private
String
packagePath
;
public
String
jarPath
;
//依赖文件的地址列表,用于编译,如果不是用版本管理工具
private
String
warnList
;
public
enum
DependenceManagement
{
MAVEN
,
GRADLE
,
ANT
}
public
enum
Separate
{
WHOLE
,
SEPARATE
}
public
enum
DatabaseType
{
MYSQL
,
ORACLE
,
SQLSERVER
,
POSTGRE
}
public
enum
Language
{
JAVA
,
PYTHON
,
CPP
,
JSP
,
ASP
,
ONLYVIEW
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Rule.java
浏览文件 @
cf800cde
...
@@ -43,6 +43,10 @@ public class Rule {
...
@@ -43,6 +43,10 @@ public class Rule {
private
String
target
;
//文本匹配目标
private
String
target
;
//文本匹配目标
private
String
replacing
;
//更改方式 全文替换/正则替换
private
String
replacing
;
//更改方式 全文替换/正则替换
public
Rule
(
String
target
,
String
replacing
){
this
.
target
=
target
;
this
.
replacing
=
replacing
;
}
// public enum MatchType{
// public enum MatchType{
// PATH,NAME,SUFFIX,GLOB
// PATH,NAME,SUFFIX,GLOB
// }
// }
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/pomEntity/PomAnalysis.java
0 → 100644
浏览文件 @
cf800cde
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>
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/pomEntity/ProjectPom.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
.
pomEntity
;
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
;
@NoArgsConstructor
@Data
public
class
ProjectPom
{
//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>
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/pomEntity/SecondFloor/Dependency.java
0 → 100644
浏览文件 @
cf800cde
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
;
/*依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展
名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。
如果设置extensions为 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整
*/
//private String type;
/*依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,
如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生
成两个单独的JAR构件
*/
//private String classifier;
/*
依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。
- compile :默认范围,用于编译
- provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
- runtime: 在执行时需要使用
- test: 用于test任务时使用
- system: 需要外在提供相应的元素。通过systemPath来取得
- systemPath: 仅用于范围为system。提供相应的路径
- optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用
*/
//private String scope;
/*
仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件
系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}
*/
//private String systemPath;
/*
当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的
依赖。此元素主要用于解决版本冲突问题
*/
//private List<Exclusion> exclusions;
/*
可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。
可选依赖阻断依赖的传递性
*/
//private String optional;
// private class Exclusion{
// private String artifactId;
// private String groupId;
// }
//private List<Dependency> parentDependencies;//
//private int reportId;
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/pomEntity/SecondFloor/Parent.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
.
pomEntity
.
SecondFloor
;
public
class
Parent
{
private
String
artifactId
;
private
String
groupId
;
private
String
version
;
private
String
relativePath
;
}
src/main/java/com/zjty/adaptationmaster/adaptor/repository/DependencyDao.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
import
com.zjty.adaptationmaster.adaptor.entity.Dependency
;
import
com.zjty.adaptationmaster.adaptor.entity.Dependency
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/repository/ReportDao.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.entity.ReportEntity
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
public
interface
ReportDao
extends
JpaRepository
<
Report
,
Integer
>,
JpaSpecificationExecutor
{
public
interface
ReportDao
extends
JpaRepository
<
Report
Entity
,
Integer
>,
JpaSpecificationExecutor
{
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/AdaptationService.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
;
import
com.zjty.adaptationmaster.adaptor.entity.AdaptRequest
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Rule
;
import
com.zjty.adaptationmaster.adaptor.entity.Rule
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
...
@@ -21,4 +22,6 @@ public interface AdaptationService {
...
@@ -21,4 +22,6 @@ public interface AdaptationService {
ServerResponse
start
(
Project
project
,
String
uuid
);
ServerResponse
start
(
Project
project
,
String
uuid
);
ServerResponse
stop
(
Project
project
,
String
uuid
);
ServerResponse
stop
(
Project
project
,
String
uuid
);
ServerResponse
uploadDeploy
(
Project
project
,
String
path
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/AdaptationServiceImpl.java
浏览文件 @
cf800cde
...
@@ -8,12 +8,16 @@ import com.zjty.adaptationmaster.base.enums.Const;
...
@@ -8,12 +8,16 @@ import com.zjty.adaptationmaster.base.enums.Const;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.adaptor.service.AdaptationService
;
import
com.zjty.adaptationmaster.adaptor.service.AdaptationService
;
import
com.zjty.adaptationmaster.utils.*
;
import
com.zjty.adaptationmaster.utils.*
;
import
org.apache.commons.io.FileUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.file.Files
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -21,6 +25,7 @@ import static java.util.stream.Collectors.toList;
...
@@ -21,6 +25,7 @@ import static java.util.stream.Collectors.toList;
@Service
@Service
public
class
AdaptationServiceImpl
implements
AdaptationService
{
public
class
AdaptationServiceImpl
implements
AdaptationService
{
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
@Autowired
private
Adaptor
adaptor
;
private
Adaptor
adaptor
;
@Autowired
@Autowired
...
@@ -97,6 +102,26 @@ public class AdaptationServiceImpl implements AdaptationService {
...
@@ -97,6 +102,26 @@ public class AdaptationServiceImpl implements AdaptationService {
return
ServerResponse
.
success
(
new
ApusicDeployer
(
Const
.
CTLPATH
,
Const
.
MAVENHOME
).
stop
(
project
.
getProjectName
(),
uuid
));
return
ServerResponse
.
success
(
new
ApusicDeployer
(
Const
.
CTLPATH
,
Const
.
MAVENHOME
).
stop
(
project
.
getProjectName
(),
uuid
));
}
}
@Override
@Transactional
public
ServerResponse
uploadDeploy
(
Project
project
,
String
path
)
{
File
file
=
new
File
(
path
);
File
deployFile
=
new
File
(
project
.
getCodeUrl
()+
"/"
+
file
.
getName
());
File
parentFile
=
deployFile
.
getParentFile
();
if
(!
parentFile
.
exists
()||!
parentFile
.
isDirectory
()){
parentFile
.
mkdirs
();
}
try
{
FileUtils
.
moveFile
(
file
,
deployFile
);
}
catch
(
IOException
e
)
{
logger
.
info
(
"预部署包转存失败"
+
e
.
getMessage
());
return
ServerResponse
.
error
(
"系统错误,文件上传失败"
);
}
project
.
setStage
(
2
);
projectDao
.
getOne
(
project
.
getId
()).
setStage
(
2
);
return
ServerResponse
.
success
();
}
private
Project
filter
(
Project
pro
){
private
Project
filter
(
Project
pro
){
//过滤删除的规则集
//过滤删除的规则集
List
<
RuleSet
>
ruleSets
=
pro
.
getRuleSets
();
List
<
RuleSet
>
ruleSets
=
pro
.
getRuleSets
();
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/InspectServiceImpl.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
.
Impl
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
.
Impl
;
import
com.alibaba.fastjson.JSON
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.entity.ReportEntity
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency
;
import
com.zjty.adaptationmaster.adaptor.repository.ProjectDao
;
import
com.zjty.adaptationmaster.adaptor.repository.ProjectDao
;
import
com.zjty.adaptationmaster.adaptor.repository.ReportDao
;
import
com.zjty.adaptationmaster.adaptor.repository.ReportDao
;
import
com.zjty.adaptationmaster.adaptor.service.InspectService
;
import
com.zjty.adaptationmaster.adaptor.service.InspectService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.utils.Inspector
;
import
com.zjty.adaptationmaster.utils.Inspector
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@Service
@Service
...
@@ -33,17 +38,67 @@ public class InspectServiceImpl implements InspectService {
...
@@ -33,17 +38,67 @@ public class InspectServiceImpl implements InspectService {
suffixLanguageMapping
.
put
(
"cpp"
,
Report
.
Language
.
CPP
);
suffixLanguageMapping
.
put
(
"cpp"
,
Report
.
Language
.
CPP
);
suffixLanguageMapping
.
put
(
"py"
,
Report
.
Language
.
PYTHON
);
suffixLanguageMapping
.
put
(
"py"
,
Report
.
Language
.
PYTHON
);
suffixLanguageMapping
.
put
(
"jsp"
,
Report
.
Language
.
JSP
);
suffixLanguageMapping
.
put
(
"jsp"
,
Report
.
Language
.
JSP
);
suffixLanguageMapping
.
put
(
"asp"
,
Report
.
Language
.
ASP
);
//suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
//suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
Report
report
=
new
Inspector
(
project
,
suffixLanguageMapping
).
inspect
();
LoggerFactory
.
getLogger
(
getClass
()).
info
(
"这里rulelist为空,需要设置"
);
Report
report
=
new
Inspector
(
project
,
suffixLanguageMapping
,
new
ArrayList
<>()).
inspect
();
ReportEntity
reportEntity
=
new
ReportEntity
();
reportEntity
.
setCompileFilePath
(
report
.
getCompileFilePath
());
reportEntity
.
setDatabaseType
(
report
.
getDatabaseType
());
reportEntity
.
setDependenceManagement
(
report
.
getDependenceManagement
());
reportEntity
.
setFileNum
(
report
.
getFileNum
());
reportEntity
.
setFramework
(
report
.
getFramework
());
reportEntity
.
setIsSeparate
(
report
.
getIsSeparate
());
reportEntity
.
setLanguage
(
report
.
getLanguage
());
reportEntity
.
setPackagePath
(
report
.
getPackagePath
());
List
<
Dependency
>
dependencies
=
report
.
getDependencies
();
String
s
=
JSON
.
toJSONString
(
dependencies
);
List
<
Inspector
.
Warn
>
warnList
=
report
.
getWarnList
();
String
s1
=
JSON
.
toJSONString
(
warnList
);
reportEntity
.
setWarnList
(
s1
);
List
<
String
>
jarPath
=
report
.
getJarPath
();
String
s2
=
JSON
.
toJSONString
(
jarPath
);
reportEntity
.
setJarPath
(
s2
);
reportEntity
.
setDependence
(
s
);
if
(
report
.
getPackagePath
()
==
null
){
if
(
report
.
getPackagePath
()
==
null
){
report
.
setPackagePath
(
project
.
getCodeUrl
());
report
.
setPackagePath
(
project
.
getCodeUrl
());
}
}
reportDao
.
save
(
report
);
Project
one
=
projectDao
.
getOne
(
project
.
getId
());
Project
one
=
projectDao
.
getOne
(
project
.
getId
());
one
.
setReport
(
report
);
ReportEntity
reportEntitySave
=
reportDao
.
save
(
reportEntity
);
one
.
setReport
(
reportEntitySave
);
report
.
setId
(
reportEntitySave
.
getId
());
return
ServerResponse
.
success
(
report
);
return
ServerResponse
.
success
(
report
);
}
else
{
}
else
{
return
ServerResponse
.
error
(
"未上传源代码"
);
return
ServerResponse
.
error
(
"未上传源代码"
);
}
}
}
}
@Override
public
Report
getReportById
(
Integer
id
)
{
ReportEntity
one
=
reportDao
.
getOne
(
id
);
Report
report
=
new
Report
();
report
.
setId
(
one
.
getId
());
List
<
Dependency
>
dependencies
=
JSON
.
parseArray
(
one
.
getDependence
(),
Dependency
.
class
);
report
.
setDependencies
(
dependencies
);
report
.
setDatabaseType
(
one
.
getDatabaseType
());
report
.
setLanguage
(
one
.
getLanguage
());
report
.
setPackagePath
(
one
.
getPackagePath
());
report
.
setCompileFilePath
(
one
.
getCompileFilePath
());
report
.
setDependenceManagement
(
one
.
getDependenceManagement
());
report
.
setFileNum
(
one
.
getFileNum
());
report
.
setLineNum
(
one
.
getLineNum
());
report
.
setFramework
(
one
.
getFramework
());
report
.
setIsSeparate
(
one
.
getIsSeparate
());
List
<
Inspector
.
Warn
>
warns
=
JSON
.
parseArray
(
one
.
getWarnList
(),
Inspector
.
Warn
.
class
);
report
.
setWarnList
(
warns
);
List
<
String
>
path
=
JSON
.
parseArray
(
one
.
getJarPath
(),
String
.
class
);
report
.
setJarPath
(
path
);
return
report
;
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/InspectService.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
;
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.entity.ReportEntity
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
public
interface
InspectService
{
public
interface
InspectService
{
ServerResponse
inspect
(
Project
projectId
);
ServerResponse
inspect
(
Project
projectId
);
Report
getReportById
(
Integer
id
);
}
}
src/main/java/com/zjty/adaptationmaster/utils/AnalysisPom.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.ProjectPom
;
import
com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency
;
import
java.nio.file.Path
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
AnalysisPom
{
public
static
ProjectPom
analysis
(
Path
pomPath
){
List
<
Dependency
>
dependencies
=
new
ArrayList
<>();
Dependency
dependency
=
new
Dependency
();
dependency
.
setGroupId
(
"aaa.bbb"
);
dependency
.
setArtifactId
(
"ccc.ddd"
);
dependency
.
setVersion
(
"1.0.0"
);
dependencies
.
add
(
dependency
);
ProjectPom
projectPom
=
new
ProjectPom
();
projectPom
.
setDependencies
(
dependencies
);
return
projectPom
;
}
}
src/main/java/com/zjty/adaptationmaster/utils/Assessor.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Rule
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.IOException
;
import
java.nio.charset.MalformedInputException
;
import
java.nio.file.*
;
import
java.nio.file.attribute.BasicFileAttributes
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
Assessor
{
public
static
void
main
(
String
[]
args
)
{
Assessor
assessor
=
new
Assessor
();
Rule
rule
=
new
Rule
();
rule
.
setTarget
(
"aa?*"
);
rule
.
setReplacing
(
"建议修改为bb"
);
List
<
Rule
>
rules
=
new
ArrayList
<>();
rules
.
add
(
rule
);
assessor
.
setRuleList
(
rules
);
Project
project
=
new
Project
();
project
.
setCodeUrl
(
"D:\\project\\bservice"
);
assessor
.
assess
(
project
);
}
List
<
Rule
>
ruleList
;
public
void
setRuleList
(
List
<
Rule
>
ruleList
)
{
this
.
ruleList
=
ruleList
;
}
List
<
Warn
>
warnList
=
new
ArrayList
<>();
int
lineNum
=
0
;
public
void
assess
(
Project
project
){
try
{
Files
.
walkFileTree
(
Paths
.
get
(
project
.
getCodeUrl
()),
new
SimpleFileVisitor
<
Path
>(){
@Override
public
FileVisitResult
visitFile
(
Path
file
,
BasicFileAttributes
attrs
)
throws
IOException
{
List
<
String
>
allLines
;
try
{
allLines
=
Files
.
readAllLines
(
file
);
}
catch
(
MalformedInputException
e
){
return
FileVisitResult
.
CONTINUE
;
}
lineNum
+=
allLines
.
size
();
for
(
int
i
=
0
;
i
<
allLines
.
size
();
i
++){
String
s
=
allLines
.
get
(
i
);
for
(
Rule
rule:
ruleList
){
if
(
s
.
indexOf
(
rule
.
getTarget
())>-
1
){
warnList
.
add
(
new
Warn
(
file
,
i
+
1
,
rule
.
getTarget
(),
rule
.
getReplacing
()));
}
}
}
return
FileVisitResult
.
CONTINUE
;
}
});
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
for
(
Warn
warn:
warnList
){
System
.
out
.
println
(
warn
);
}
}
// public class ProjectFile{
// private Path path;
// private BasicFileAttributes attributes;
// private List<String> allLines;
// }
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
Warn
{
private
Path
path
;
private
int
line
;
private
String
keyWord
;
private
String
suggest
;
}
}
src/main/java/com/zjty/adaptationmaster/utils/FileUtil.java
浏览文件 @
cf800cde
...
@@ -72,7 +72,33 @@ public class FileUtil {
...
@@ -72,7 +72,33 @@ public class FileUtil {
}
}
}
}
}
}
private
static
void
recursiveFiles
(
String
path
){
// 创建 File对象
File
file
=
new
File
(
path
);
// 取 文件/文件夹
File
files
[]
=
file
.
listFiles
();
// 对象为空 直接返回
if
(
files
==
null
){
return
;
}
// 存在文件 遍历 判断
for
(
File
f
:
files
)
{
// 判断是否为 文件夹
if
(
f
.
isDirectory
()){
// 为 文件夹继续遍历
recursiveFiles
(
f
.
getAbsolutePath
());
// 判断是否为 文件
}
else
if
(
f
.
isFile
()){
if
(
"pom.xml"
.
equals
(
f
.
getName
())){
System
.
out
.
println
(
"解析pom"
);
}
System
.
out
.
println
(
f
.
getName
());
// System.out.println(f.getAbsolutePath());
}
else
{
System
.
out
.
print
(
"未知错误文件"
);
}
}
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
String
filePath
=
"C:\\Users\\wyl\\Desktop\\alllib.zip"
;
String
filePath
=
"C:\\Users\\wyl\\Desktop\\alllib.zip"
;
...
...
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
浏览文件 @
cf800cde
差异被折叠。
点击展开。
src/main/java/com/zjty/adaptationmaster/utils/ReadedFileTask.java
浏览文件 @
cf800cde
...
@@ -5,16 +5,13 @@ import com.zjty.adaptationmaster.adaptor.entity.Rule;
...
@@ -5,16 +5,13 @@ import com.zjty.adaptationmaster.adaptor.entity.Rule;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.apache.tomcat.websocket.server.WsServerContainer
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
java.io.*
;
import
java.io.*
;
import
java.nio.file.Path
;
import
java.nio.file.Path
;
import
java.nio.file.attribute.BasicFileAttributes
;
import
java.nio.file.attribute.BasicFileAttributes
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Properties
;
public
class
ReadedFileTask
implements
Runnable
{
public
class
ReadedFileTask
implements
Runnable
{
...
...
src/test/java/com/zjty/adaptationmaster/AdaptationMasterApplicationTests.java
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
;
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
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
@SpringBootTest
class
AdaptationMasterApplicationTests
{
class
AdaptationMasterApplicationTests
{
@Autowired
private
ReportDao
reportDao
;
}
}
src/test/java/com/zjty/adaptationmaster/YmlConfig.java
0 → 100644
浏览文件 @
cf800cde
package
com
.
zjty
.
adaptationmaster
;
public
class
YmlConfig
{
public
static
void
main
(
String
[]
args
)
{
String
string
=
""
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论