-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
107 lines (93 loc) · 2.92 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
buildscript {
ext {
springBootVersion = '1.2.5.RELEASE'
optimizeRjs = false
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath 'com.sourcemuse.gradle.plugin:gradle-mongo-plugin:0.4.0'
}
}
plugins {
id "org.grooscript.conversion" version "1.2.0"
}
apply plugin: 'groovy'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'war'
apply plugin: 'mongo'
war {
baseName = 'demo'
version = '0.0.8-SNAPSHOT'
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
}
configurations {
providedRuntime
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-data-mongodb")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-websocket")
compile("org.springframework:spring-messaging")
compile("org.codehaus.groovy:groovy-all:2.4.4")
compile("org.grooscript:grooscript:1.2.0") {
exclude module: "groovy"
exclude module: "groovy-json"
}
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
testCompile("org.springframework.boot:spring-boot-starter-test")
compile 'cglib:cglib-nodep:2.2'
testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
exclude module: 'groovy-all'
exclude module: 'junit-dep'
}
}
springBoot {
mainClass = "demo.Application"
}
task wrapper(type: Wrapper) {
gradleVersion = '2.5'
}
task templatesListen(type: org.grooscript.gradle.TemplatesThreadTask) {
templatesPath = 'src/main/resources/templates'
templates = ['bookList.gtpl', 'bookTable.gtpl', 'lastBook.gtpl']
destinationFile = 'src/main/resources/static/js/app/Templates.js'
classpath = ['src/main/groovy']
}
def optimizeRequireJs(withOutput = false) {
def process = "r.js -o build.js".execute()
process.waitForOrKill(12000)
if (withOutput) {
println "Require.js optimized: ${process.exitValue()}"
println "Error:" + process.err.text
println "Out:" + process.in.text
}
}
spy {
files = ['src/main/resources/static/js/app',
'src/main/resources/static/css',
'src/main/resources/static/js/demo.js']
onChanges = { list ->
if (list.any { it.endsWith('static/js/app/bookDemo.js') } && optimizeRjs) {
optimizeRequireJs()
}
springWebsocketTo 'http://localhost:8080/demo' data 'templates' onChannel '/app/reload'
}
}
task myRequire(type: org.grooscript.gradle.RequireJsThreadTask) {
sourceFile = 'src/main/groovy/bookDemo.groovy'
destinationFolder = 'src/main/resources/static/js/app'
mainContextScope = ['$', 'location']
}
task rjs() << {
optimizeRequireJs(true)
}
spyChanges.dependsOn templatesListen, myRequire
bootRun.dependsOn startManagedMongoDb, spyChanges