-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
156 lines (122 loc) · 4.36 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
150
151
152
153
154
155
156
import com.github.gradle.node.npm.task.NpmTask
plugins {
id 'application'
id 'groovy'
id 'war'
id 'com.github.erdi.webdriver-binaries'
id 'com.github.node-gradle.node'
id 'com.gorylenko.gradle-git-properties'
}
group = 'io.github.matrei'
ext.set('spring.version', libs.versions.spring.asProvider().get())
ext.set('grailsVersion', libs.versions.grails.asProvider().get())
// These plugins need to be applied after the grailsVersion property is set
apply plugin: 'org.grails.grails-web'
apply plugin: 'org.grails.grails-gsp'
repositories {
mavenLocal()
mavenCentral()
maven { url = 'https://repo.grails.org/grails/core' }
}
// This is used for testing with local copy of the Grails Inertia Plugin
// (comment out the dependency in the dependencies block)
// Also see section in settings.gradle
/*
grails {
plugins {
implementation project(':grails-inertia-plugin')
}
}
*/
configurations.configureEach {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.codehaus.groovy') {
String groovyVersion = project.findProperty('groovyVersion') ?: libs.versions.groovy.get()
details.useVersion(groovyVersion)
}
}
}
dependencies {
implementation libs.grails.core
implementation libs.grails.interceptors
implementation libs.grails.web.common
implementation libs.grails.web.databinding
implementation libs.grails.gsp
implementation libs.grails.events
implementation libs.grails.spring.security.core
implementation libs.bundles.spring.security
implementation libs.grails.gorm.logical.delete
implementation libs.grails.inertia
//implementation project(':grails-inertia-plugin')
implementation libs.datafaker
implementation libs.squiggly
implementation libs.metadata.extractor
implementation libs.imgscalr
runtimeOnly libs.gorm.hibernate5
runtimeOnly libs.grails.csrf
runtimeOnly libs.grails.i18n
runtimeOnly libs.grails.services
runtimeOnly libs.grails.urlmappings
runtimeOnly libs.spring.boot.autoconfigure
runtimeOnly libs.spring.boot.starter.logging
runtimeOnly libs.spring.boot.starter.tomcat
runtimeOnly libs.h2database
runtimeOnly libs.hikari
compileOnly libs.micronaut.inject.groovy
compileOnly libs.grails.views.json // Used for compiling json views
compileOnly libs.slf4j.nop // Get rid of warning about missing slf4j implementation during GSP compile tasks
testImplementation libs.micronaut.httpclient
testImplementation libs.micronaut.inject.groovy
testImplementation libs.bundles.grails.testing.support
testImplementation libs.spock.core
testImplementation libs.groovy.test
integrationTestImplementation libs.bundles.geb
integrationTestRuntimeOnly libs.bundles.selenium
}
application {
mainClass = 'pingcrm.Application'
}
java {
sourceCompatibility = JavaVersion.VERSION_17
}
tasks.withType(Test).configureEach {
useJUnitPlatform()
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
}
reports.html.required = false
reports.junitXml.required = false
systemProperty 'geb.env', System.getProperty('geb.env')
systemProperty 'geb.build.reportsDir', reporting.file('geb/integrationTest')
}
webdriverBinaries {
chromedriver {
version = '110.0.5481.77'
fallbackTo32Bit = true
}
geckodriver = '0.32.2'
edgedriver = '110.0.1587.57'
}
node {
download = true
}
tasks.register('viteBuild', NpmTask) {
group = 'build'
description = 'Build the client bundle'
inputs.dir(layout.projectDirectory.dir('node_modules'))
inputs.dir(layout.projectDirectory.dir('src/main/javascript'))
inputs.files(layout.projectDirectory.files('package.json', 'vite.config.js', 'tailwind.config.js', 'postcss.config.js', 'babel.config.js', 'jsconfig.json'))
outputs.dir(layout.projectDirectory.dir('src/main/resources/public/dist'))
it.args = ['run', 'build']
dependsOn 'npmInstall'
}
tasks.register('copyNodeModulesForSsr', Copy) {
group = 'build'
description = 'Copy node_modules for SSR'
from layout.projectDirectory.dir('node_modules')
into layout.buildDirectory.dir('resources/main/node_modules')
dependsOn 'npmInstall'
}
tasks.named('processResources') {
dependsOn 'viteBuild', 'copyNodeModulesForSsr'
}