Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
adaptation-master
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
912协同工作系统
项目监控管理工具
adaptation-master
Commits
161443c6
提交
161443c6
authored
1月 15, 2020
作者:
wyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge branch 'master' of 192.168.1.249:ty_wyl/adaptation-master1 into wyl
# Conflicts: # src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
上级
b1c53c08
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
111 行增加
和
79 行删除
+111
-79
pom.xml
pom.xml
+10
-10
Report.java
...java/com/zjty/adaptationmaster/adaptor/entity/Report.java
+2
-2
PomDependency.java
...r/adaptor/entity/pomEntity/SecondFloor/PomDependency.java
+1
-0
AdaptationServiceImpl.java
...ionmaster/adaptor/service/Impl/AdaptationServiceImpl.java
+1
-0
Inspector.java
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
+97
-67
没有找到文件。
pom.xml
浏览文件 @
161443c6
...
...
@@ -157,16 +157,16 @@
<artifactId>
commons-lang3
</artifactId>
<version>
3.5
</version>
</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
>
<!-- <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>
<build>
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Report.java
浏览文件 @
161443c6
...
...
@@ -8,9 +8,8 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
javax.persistence.*
;
import
java.nio.file.Path
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Map
;
@Data
@NoArgsConstructor
...
...
@@ -24,6 +23,7 @@ public class Report {
private
int
fileNum
;
private
long
lineNum
;
private
List
<
PomDependency
>
dependencies
;
@Transient
private
ProjectPom
projectPom
;
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/pomEntity/SecondFloor/PomDependency.java
浏览文件 @
161443c6
...
...
@@ -20,6 +20,7 @@ public class PomDependency {
private
String
artifactId
;
private
String
version
;
private
Integer
reportId
;
/*依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展
名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。
如果设置extensions为 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/AdaptationServiceImpl.java
浏览文件 @
161443c6
...
...
@@ -81,6 +81,7 @@ public class AdaptationServiceImpl implements AdaptationService {
//project1.setCodeUrl(Const.UPLOAD_LOCATION+File.separator+project1.getProjectName());
project1
.
setCodeUrl
(
Const
.
UPLOAD_LOCATION
+
project1
.
getProjectName
());
try
{
FileUtils
.
cleanDirectory
(
new
File
(
project1
.
getCodeUrl
()));
FileZip
.
unzip
(
new
File
(
path
),
project1
.
getCodeUrl
());
project1
.
setStage
(
project
.
getStage
());
if
(
project
.
getStage
()
==
1
){
...
...
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
浏览文件 @
161443c6
...
...
@@ -17,10 +17,8 @@ import org.dom4j.io.SAXReader;
import
org.springframework.transaction.annotation.Transactional
;
import
org.yaml.snakeyaml.Yaml
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.io.*
;
import
java.net.URLDecoder
;
import
java.nio.charset.MalformedInputException
;
import
java.nio.file.*
;
import
java.nio.file.attribute.BasicFileAttributes
;
...
...
@@ -39,69 +37,101 @@ import java.util.*;
public
class
Inspector
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
LocalDateTime
.
now
());
//System.out.println("请输入项目地址,然后回车");
//Scanner scanner = new Scanner(System.in);
//String next = scanner.next();
//Project project = new Project();
//project.setCodeUrl(next);
// Map<String, Report.Language> suffixLanguageMapping = new HashMap<>();
// suffixLanguageMapping.put("java",Report.Language.JAVA);
// suffixLanguageMapping.put("cpp",Report.Language.CPP);
// 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("pdfobject.min.js","这里用到了pdf文档展示插件"));
// ruleList.add(new Rule("pdfobject.js","这里用到了pdf文档展示插件"));
// ruleList.add(new Rule(".swf","这里用到了flash流媒体播放插件"));
// //String[] projectSrc = {"D:\\project\\testAccess\\rhasspy-master"};
// //多个子项目
// String[] projectSrc = {"D:\\project\\testAccess\\SpringBoot-Labs-master"/*"D:\\project\\bservice","D:\\project\\debug","D:\\project\\glutton"*/};
// //String[] projectSrc = {"D:\\project\\testAccess\\Telegram-master"};
// for(String s:projectSrc){
// Project project = new Project();
// project.setCodeUrl(s);
// Inspector inspector = new Inspector(project,suffixLanguageMapping,ruleList);
// Report inspect = inspector.inspect();
// System.out.println("语言:"+inspect.getLanguage()+" 数据库:"+inspect.getDatabaseType()+" 依赖管理:"+inspect.getDependenceManagement()+" 文件数量:"+inspect.getFileNum()+" 代码行数:"+inspect.getLineNum());
// for(Warn warn:inspect.getWarnList()){
// System.out.println("\t"+warn);
// }
// //System.out.println(inspect);
// }
// System.out.println(LocalDateTime.now());
Map
<
String
,
Report
.
Language
>
suffixLanguageMapping
=
new
HashMap
<>();
suffixLanguageMapping
.
put
(
"java"
,
Report
.
Language
.
JAVA
);
suffixLanguageMapping
.
put
(
"cpp"
,
Report
.
Language
.
CPP
);
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
)
{
Project
project
=
new
Project
();
project
.
setCodeUrl
(
file1
.
getAbsolutePath
());
Report
report
=
new
Inspector
(
project
,
suffixLanguageMapping
,
ruleList
,
"aaa"
).
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"
);
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
String
uuid
;
...
...
@@ -205,7 +235,7 @@ public class Inspector {
for
(
Rule
rule:
ruleList
){
if
(
s
.
indexOf
(
rule
.
getTarget
())>-
1
){
warnList
.
add
(
new
Warn
(
file
.
toString
()
.
substring
(
Const
.
UPLOAD_LOCATION
.
length
())
,
i
+
1
,
rule
.
getTarget
(),
rule
.
getReplacing
()));
warnList
.
add
(
new
Warn
(
file
.
toString
()
/*.substring(Const.UPLOAD_LOCATION.length())*/
,
i
+
1
,
rule
.
getTarget
(),
rule
.
getReplacing
()));
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论