-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
134 lines (106 loc) · 5.04 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
123
124
125
126
127
128
129
130
131
132
133
134
// 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'
// for LLM integrations
implementation 'dev.langchain4j:langchain4j:0.18.0'
// LLM: SLF4J API
//implementation 'org.slf4j:slf4j-api:1.7.32'
// LLM: Logback Classic (implementation of SLF4J)
implementation 'ch.qos.logback:logback-classic:1.2.3'
// LLM: ollama4j
implementation 'io.github.amithkoujalgi:ollama4j:1.0.44'
// 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"
}
}