-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
149 lines (126 loc) · 3.48 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
plugins {
id 'java'
id 'jacoco'
id 'maven-publish'
id 'com.enonic.defaults' version '2.1.5'
id 'com.enonic.xp.base' version '3.5.0'
id 'com.github.node-gradle.node' version '7.1.0'
id 'org.asciidoctor.jvm.convert' version '4.0.3'
id "org.aim42.htmlSanityCheck" version '1.1.6'
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(11)
}
}
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = sourceCompatibility
dependencies {
// compileOnly: This is used for dependencies that are only needed during
// compilation. The library itself is not included in the final application
// build.
compileOnly "com.enonic.xp:core-api:${xpVersion}"
compileOnly "com.enonic.xp:portal-api:${xpVersion}"
compileOnly "com.enonic.xp:script-api:${xpVersion}"
// implementation: This is the most common way to specify a dependency.
// Libraries included with implementation are available during both compile
// time and runtime. This means your code can use the functionality of the
// dependency while compiling and when the final application runs.
implementation "com.enonic.xp:lib-io:${xpVersion}"
implementation "com.enonic.xp:lib-portal:${xpVersion}"
// implementation "com.enonic.xp:lib-vhost:${xpVersion}"
implementation 'com.enonic.lib:lib-router:3.1.0'
testImplementation 'org.mockito:mockito-core:5.8.0'
testImplementation 'org.mockito:mockito-junit-jupiter:5.8.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1'
testImplementation "com.enonic.xp:testing:${xpVersion}"
}
processResources {
exclude '**/.gitkeep'
exclude '**/*.ts'
exclude '**/tsconfig.json'
}
repositories {
mavenCentral()
xp.enonicRepo('dev')
}
jacocoTestReport {
reports {
xml.required = true
html.required = true
}
}
check.dependsOn jacocoTestReport
test {
useJUnitPlatform()
}
node {
// Whether to download and install a specific Node.js version or not
// If false, it will use the globally installed Node.js
// If true, it will download node using above parameters
// Note that npm is bundled with Node.js
download = true
// Version of node to download and install (only used if download is true)
// It will be unpacked in the workDir
version = '20.14.0'
}
tasks.withType(Copy) {
includeEmptyDirs = false
}
tasks.register('npmBuild', NpmTask) {
args = [
'run',
'--silent',
'build'
]
dependsOn npmInstall
dependsOn 'javadoc'
environment = [
'FORCE_COLOR': 'true',
'LOG_LEVEL_FROM_GRADLE': gradle.startParameter.logLevel.toString(),
'NODE_ENV': project.hasProperty('dev') || project.hasProperty('development') ? 'development' : 'production'
]
inputs.dir 'src/main/resources'
outputs.dir 'build/resources/main'
}
jar.dependsOn npmBuild
compileTestJava.dependsOn npmBuild
asciidoctor {
sourceDir = file('docs')
outputDir = file('build/docs')
attributes 'source-highlighter': 'coderay'
resources {
from(sourceDir) {
include '**/images/**'
include '**/media/**'
}
}
}
htmlSanityCheck {
dependsOn asciidoctor
sourceDir = tasks.asciidoctor.outputDir
}
tasks.register('npmCheck', NpmTask) {
dependsOn npmInstall
args = [
'run',
'check'
]
environment = [
'FORCE_COLOR': 'true',
]
}
check.dependsOn npmCheck
tasks.register('npmTest', NpmTask) {
args = [
'run',
'test'
]
dependsOn npmInstall
environment = [
'FORCE_COLOR': 'true',
]
inputs.dir 'src/bun'
outputs.dir 'coverage'
}
test.dependsOn npmTest