-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
111 lines (89 loc) · 2.94 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
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.2'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.inomera.wsps'
version = '0.0.1-SNAPSHOT'
ext {
versions = [
commons_lang3 : '3.15.0',
xmlschema_core: '2.3.1'
]
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
compileOnly {
extendsFrom annotationProcessor
}
jaxb
}
repositories {
mavenLocal()
mavenCentral()
}
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir 'build/generated-sources/jaxb'
}
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-undertow") {
exclude group: "io.undertow", module: "undertow-websockets-jsr"
}
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-web-services'
implementation 'wsdl4j:wsdl4j'
implementation "org.apache.ws.xmlschema:xmlschema-core:${versions.xmlschema_core}"
implementation "org.apache.commons:commons-lang3:${versions.commons_lang3}"
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
jaxb 'javax.activation:activation:1.1'
jaxb 'javax.xml.bind:jaxb-api:2.3.1'
jaxb 'com.sun.xml.bind:jaxb-impl:2.3.3'
jaxb "org.glassfish.jaxb:jaxb-xjc"
jaxb 'org.glassfish.jaxb:jaxb-runtime:4.0.3'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.register('genJaxb') {
def jaxbTargetDir = file("${buildDir}/generated-sources/jaxb")
def xsdDir = file("${projectDir}/src/main/resources/xsd")
def episodeCommon = file("${xsdDir}/common.episode.xml")
inputs.files fileTree(xsdDir).include("*.xsd")
inputs.file episodeCommon
outputs.dir jaxbTargetDir
doLast {
jaxbTargetDir.mkdirs()
ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath)
// Generate common schema
ant.xjc(destdir: jaxbTargetDir,
schema: "${xsdDir}/pims-common.xsd",
package: 'com.inomera.ws.schema.common') {
arg(value: '-extension')
arg(value: "-episode")
arg(value: episodeCommon)
}
// Generate subscription schema
ant.xjc(destdir: jaxbTargetDir,
schema: "${xsdDir}/wsps-subscription.xsd",
package: 'com.inomera.ws.schema.wsps.subscription') {
arg(value: '-extension')
arg(value: "-b")
arg(value: episodeCommon)
}
}
}
compileJava.dependsOn genJaxb
tasks.named('test') {
useJUnitPlatform()
}