Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
838bd1e6
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
838bd1e6
编写于
1月 08, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: [deps] support for gradle
上级
fe8d3cdd
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
125 addition
and
5 deletion
+125
-5
_fixtures/deps/gradle_sample/build.gradle
_fixtures/deps/gradle_sample/build.gradle
+57
-0
_fixtures/deps/gradle_sample/settings.gradle
_fixtures/deps/gradle_sample/settings.gradle
+1
-0
_fixtures/deps/gradle_sample/src/main/java/com/phodal/coco/gradledemo/GradledemoApplication.java
...ava/com/phodal/coco/gradledemo/GradledemoApplication.java
+13
-0
_fixtures/deps/gradle_sample/src/main/resources/application.properties
...s/gradle_sample/src/main/resources/application.properties
+1
-0
_fixtures/deps/gradle_sample/src/test/java/com/phodal/coco/gradledemo/GradledemoApplicationTests.java
...om/phodal/coco/gradledemo/GradledemoApplicationTests.java
+13
-0
cmd/dep_test.go
cmd/dep_test.go
+10
-1
cmd/testdata/deps_gradle.txt
cmd/testdata/deps_gradle.txt
+11
-0
core/adapter/cocafile/file_filter.go
core/adapter/cocafile/file_filter.go
+4
-0
core/context/deps/dep_app.go
core/context/deps/dep_app.go
+5
-0
core/context/deps/dep_app_test.go
core/context/deps/dep_app_test.go
+3
-3
core/context/deps/gradle_analysis.go
core/context/deps/gradle_analysis.go
+7
-1
未找到文件。
_fixtures/deps/gradle_sample/build.gradle
0 → 100644
浏览文件 @
838bd1e6
buildscript
{
repositories
{
mavenCentral
()
}
dependencies
{
classpath
'org.springframework.cloud:spring-cloud-contract-gradle-plugin:2.2.1.RELEASE'
}
}
plugins
{
id
'org.springframework.boot'
version
'2.2.2.RELEASE'
id
'io.spring.dependency-management'
version
'1.0.8.RELEASE'
id
'java'
}
apply
plugin:
'spring-cloud-contract'
group
=
'com.phodal.coco'
version
=
'0.0.1-SNAPSHOT'
sourceCompatibility
=
'1.8'
repositories
{
mavenCentral
()
}
ext
{
set
(
'springCloudVersion'
,
"Hoxton.SR1"
)
}
dependencies
{
implementation
'org.springframework.boot:spring-boot-starter-jersey'
implementation
'org.springframework.boot:spring-boot-starter-webflux'
implementation
'org.flywaydb:flyway-core'
implementation
'org.springframework.cloud:spring-cloud-starter-zipkin'
implementation
'org.springframework.cloud:spring-cloud-starter-zookeeper-config'
testImplementation
(
'org.springframework.boot:spring-boot-starter-test'
)
{
exclude
group:
'org.junit.vintage'
,
module:
'junit-vintage-engine'
}
testImplementation
'io.projectreactor:reactor-test'
testImplementation
'org.springframework.cloud:spring-cloud-starter-contract-stub-runner'
testImplementation
'org.springframework.cloud:spring-cloud-starter-contract-verifier'
}
dependencyManagement
{
imports
{
mavenBom
"org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
contracts
{
targetFramework
=
org
.
springframework
.
cloud
.
contract
.
verifier
.
config
.
TestFramework
.
JUNIT5
testMode
=
'WebTestClient'
}
test
{
useJUnitPlatform
()
}
_fixtures/deps/gradle_sample/settings.gradle
0 → 100644
浏览文件 @
838bd1e6
rootProject
.
name
=
'gradledemo'
_fixtures/deps/gradle_sample/src/main/java/com/phodal/coco/gradledemo/GradledemoApplication.java
0 → 100644
浏览文件 @
838bd1e6
package
com.phodal.coco.gradledemo
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
GradledemoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
GradledemoApplication
.
class
,
args
);
}
}
_fixtures/deps/gradle_sample/src/main/resources/application.properties
0 → 100644
浏览文件 @
838bd1e6
_fixtures/deps/gradle_sample/src/test/java/com/phodal/coco/gradledemo/GradledemoApplicationTests.java
0 → 100644
浏览文件 @
838bd1e6
package
com.phodal.coco.gradledemo
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
GradledemoApplicationTests
{
@Test
void
contextLoads
()
{
}
}
cmd/dep_test.go
浏览文件 @
838bd1e6
...
...
@@ -4,11 +4,20 @@ import (
"testing"
)
func
Test
Dep
FindUnused
(
t
*
testing
.
T
)
{
func
Test
_Dep_Maven
FindUnused
(
t
*
testing
.
T
)
{
tests
:=
[]
cmdTestCase
{{
name
:
"dep"
,
cmd
:
"deps -p ../_fixtures/deps/maven_sample"
,
golden
:
"testdata/deps_maven.txt"
,
}}
runTestCmd
(
t
,
tests
)
}
func
Test_Dep_GradleFindUnused
(
t
*
testing
.
T
)
{
tests
:=
[]
cmdTestCase
{{
name
:
"dep"
,
cmd
:
"deps -p ../_fixtures/deps/gradle_sample"
,
golden
:
"testdata/deps_gradle.txt"
,
}}
runTestCmd
(
t
,
tests
)
}
\ No newline at end of file
cmd/testdata/deps_gradle.txt
0 → 100644
浏览文件 @
838bd1e6
unused
+---------------------------+-------------------------------------------+--------------------+
| GROUPID | ARTIFACTID | SCOPE |
+---------------------------+-------------------------------------------+--------------------+
| org.flywaydb | flyway-core | implementation |
| org.springframework.cloud | spring-cloud-starter-zipkin | implementation |
| org.springframework.cloud | spring-cloud-starter-zookeeper-config | implementation |
| io.projectreactor | reactor-test | testImplementation |
| org.springframework.cloud | spring-cloud-starter-contract-stub-runner | testImplementation |
| org.springframework.cloud | spring-cloud-starter-contract-verifier | testImplementation |
+---------------------------+-------------------------------------------+--------------------+
core/adapter/cocafile/file_filter.go
浏览文件 @
838bd1e6
...
...
@@ -17,3 +17,7 @@ var JavaFileFilter = func(path string) bool {
var
PomXmlFilter
=
func
(
path
string
)
bool
{
return
strings
.
HasSuffix
(
path
,
"pom.xml"
)
}
var
BuildGradleFilter
=
func
(
path
string
)
bool
{
return
strings
.
HasSuffix
(
path
,
"build.gradle"
)
}
core/context/deps/dep_app.go
浏览文件 @
838bd1e6
...
...
@@ -28,12 +28,17 @@ func (d *DepApp) BuildImportMap(deps []domain.JClassNode) map[string]domain.JImp
func
(
d
*
DepApp
)
AnalysisPath
(
path
string
,
nodes
[]
domain
.
JClassNode
)
[]
domain
.
JDependency
{
path
,
_
=
filepath
.
Abs
(
path
)
pomXmls
:=
cocafile
.
GetFilesWithFilter
(
path
,
cocafile
.
PomXmlFilter
)
gradleFiles
:=
cocafile
.
GetFilesWithFilter
(
path
,
cocafile
.
BuildGradleFilter
)
var
mavenDeps
[]
domain
.
JDependency
=
nil
for
_
,
pomFile
:=
range
pomXmls
{
currentMavenDeps
:=
AnalysisMaven
(
pomFile
)
mavenDeps
=
append
(
mavenDeps
,
currentMavenDeps
...
)
}
for
_
,
gradleFile
:=
range
gradleFiles
{
dependencies
:=
AnalysisGradleFile
(
gradleFile
)
mavenDeps
=
append
(
mavenDeps
,
dependencies
...
)
}
importMap
:=
d
.
BuildImportMap
(
nodes
)
...
...
core/context/deps/dep_app_test.go
浏览文件 @
838bd1e6
...
...
@@ -15,7 +15,7 @@ func Test_ShouldReturnGradleDep(t *testing.T) {
developmentOnly 'org.springframework.boot:spring-boot-devtools'
}`
results
:=
AnalysisGradle
(
pluginsStr
)
results
:=
AnalysisGradle
String
(
pluginsStr
)
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
2
))
g
.
Expect
(
results
[
0
]
.
ArtifactId
)
.
To
(
Equal
(
"spring-boot-starter-web"
))
...
...
@@ -27,7 +27,7 @@ func Test_ShouldReturnCorrectGradleDepsFroFile(t *testing.T) {
codePath
:=
"../../../_fixtures/deps/gradle/build.gradle"
bytes
:=
cmd_util
.
ReadFile
(
codePath
)
mavenDeps
:=
AnalysisGradle
(
string
(
bytes
))
mavenDeps
:=
AnalysisGradle
String
(
string
(
bytes
))
g
.
Expect
(
len
(
mavenDeps
))
.
To
(
Equal
(
14
))
}
...
...
@@ -42,7 +42,7 @@ func Test_ShouldHandleExclude(t *testing.T) {
}
}`
results
:=
AnalysisGradle
(
pluginsStr
)
results
:=
AnalysisGradle
String
(
pluginsStr
)
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
1
))
g
.
Expect
(
results
[
0
]
.
ArtifactId
)
.
To
(
Equal
(
"spring-boot-starter-test"
))
...
...
core/context/deps/gradle_analysis.go
浏览文件 @
838bd1e6
...
...
@@ -2,12 +2,18 @@ package deps
import
(
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/domain"
"github.com/phodal/coca/core/infrastructure/ast/groovy"
"github.com/phodal/coca/languages/groovy"
)
func
AnalysisGradle
(
str
string
)
[]
domain
.
JDependency
{
func
AnalysisGradleFile
(
path
string
)
[]
domain
.
JDependency
{
bytes
:=
cmd_util
.
ReadFile
(
path
)
return
AnalysisGradleString
(
string
(
bytes
))
}
func
AnalysisGradleString
(
str
string
)
[]
domain
.
JDependency
{
parser
:=
ProcessGroovyString
(
str
)
context
:=
parser
.
CompilationUnit
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录