-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathbuild.gradle
122 lines (98 loc) · 4.68 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// To create fat (uber) jar
plugins {
id 'com.github.johnrengelman.shadow' version '8.1.1'
id 'java'
id 'application'
}
sourceCompatibility = 17
targetCompatibility = 17
mainClassName = "gin.LocalSearch"
repositories {
mavenCentral()
maven { url 'https://repo.gradle.org/gradle/libs-releases' }
}
dependencies {
implementation group: 'commons-io', name: 'commons-io', version: '2.8.0'
implementation group: 'com.google.guava', name: 'guava', version: '30.1-jre'
implementation platform('org.junit:junit-bom:5.9.2')
implementation 'org.junit.jupiter:junit-jupiter'
implementation 'org.junit.jupiter:junit-jupiter-engine'
implementation 'org.junit.platform:junit-platform-launcher'
implementation 'org.junit.platform:junit-platform-engine'
implementation 'org.junit.vintage:junit-vintage-engine:5.9.2'
implementation 'org.apiguardian:apiguardian-api:1.1.2'
implementation group: 'junit', name: 'junit', version: '4.13.1'
implementation group: 'org.hamcrest', name: 'hamcrest', version: '2.2'
implementation group: 'com.github.javaparser', name: 'javaparser-core', version: '3.24.0'
implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'
implementation group: 'org.apache.commons', name: 'commons-rng-simple', version: '1.3'
implementation group: 'org.apache.commons', name: 'commons-rng-core', version: '1.3'
implementation group: 'org.apache.commons', name: 'commons-rng-client-api', version: '1.3'
implementation group: 'org.apache.commons', name: 'commons-rng-sampling', version: '1.3'
implementation group: 'com.opencsv', name: 'opencsv', version: '5.3'
// https://mvnrepository.com/artifact/com.github.spullara.cli-parser/cli-parser
implementation group: 'com.github.spullara.cli-parser', name: 'cli-parser', version: '1.1.5'
// https://mvnrepository.com/artifact/org.tinylog/tinylog
implementation group: 'org.tinylog', name: 'tinylog', version: '1.3.6'
// https://mvnrepository.com/artifact/org.ekstazi/org.ekstazi.core
implementation group: 'org.ekstazi', name: 'org.ekstazi.core', version: '5.3.0'
// https://mvnrepository.com/artifact/edu.illinois/starts-core
implementation group: 'edu.illinois', name: 'starts-core', version: '1.3'
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.11'
// Include the jar by "mvn package" on the fork of InMemoryCompiler created for gin.
// This is a substitute for the following:
// compile "org.mdkt.compiler:InMemoryJavaCompiler:1.3.0"
// ... because InMemoryJavaCompiler has yet to incorporate the critical bugfix
// ... and we then forked a second time to provide access to bytes of compiled code.
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Used to profile maven projects
implementation group: 'org.apache.maven.shared', name: 'maven-invoker', version: '3.2.0'
implementation group: 'org.apache.maven', name: 'maven-core', version: '3.9.0'
// Used to profile gradle projects
implementation group: 'org.gradle', name: 'gradle-tooling-api', version: '8.0.2'
runtimeOnly 'org.slf4j:slf4j-simple:2.0.6'
// Create jars for call graph generation using zta-zip
implementation 'org.zeroturnaround:zt-zip:1.14'
// Parse commandline
implementation group: 'org.zeroturnaround', name: 'zt-exec', version: '1.12'
// Parse build reports using jsoup
implementation 'org.jsoup:jsoup:1.13.1'
testImplementation "org.mockito:mockito-core:3.+"
}
jar {
manifest {
attributes(
'Class-Path': configurations.compileClasspath.collect { it.getName() }.join(' '),
'Premain-Class': "org.ekstazi.agent.EkstaziAgent",
"Can-Redefine-Classes": "true",
"Can-Retransform-Classes": "true"
)
}
}
// This is handy to copy dependencies into a folder, for use in an IDE etc.
tasks.register('copyToLib', Copy) {
into "lib"
from configurations.runtimeClasspath
}
javadoc {
source = sourceSets.main.allJava
classpath = configurations.compileClasspath
}
shadowJar {
destinationDirectory = buildDir
archiveBaseName = 'gin'
archiveVersion = null
archiveClassifier = null
}
test {
//we want display the following test events
testLogging {
events "PASSED", "STARTED", "FAILED", "SKIPPED"
//showStandardStreams = true
}
useJUnit {
if (project.hasProperty("excludeCategory"))
excludeCategories "$excludeCategory"
}
}