-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
executable file
·117 lines (97 loc) · 3.18 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
apply plugin: 'java'
apply plugin: 'war'
group = 'com.rptools'
version = '1.0'
description = """RPTools"""
sourceCompatibility = 1.8
targetCompatibility = 1.8
clean.delete << file('bower_components')
clean.delete << file('node_modules')
clean.delete << file('out')
clean.delete << file('src/main/webapp/resources/js/bower')
buildscript {
repositories {
jcenter()
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'com.bmuschko:gradle-tomcat-plugin:2.0'
classpath 'com.moowork.gradle:gradle-node-plugin:1.1.1'
}
}
apply plugin: 'com.moowork.node'
apply plugin: 'com.bmuschko.tomcat'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile project(':rptools')
compile group: 'com.github.jsimone', name: 'webapp-runner', version: '8.0.30.2'
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.1.0'
compile group: 'com.google.protobuf', name: 'protobuf-java-util', version: '3.1.0'
compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.8.8'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.2.4.RELEASE'
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
def tomcatVersion = '8.0.27'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
}
}
tomcatRun.contextPath = '/'
tomcatRunWar.contextPath = '/'
node {
version = '0.12.2'
npmVersion = '2.7.5'
download = true
}
task npmCacheConfig(type: NpmTask, dependsOn: npmInstall) {
description = "Configure the NPM cache"
def npmCacheDir = "${gradle.getGradleUserHomeDir()}/caches/npm"
outputs.files file(npmCacheDir)
args = ['config', 'set', 'cache', npmCacheDir]
}
task npmPackages(type: NpmTask, dependsOn: npmCacheConfig) {
description = "Install Node.js packages"
args = ['install']
inputs.files file('package.json')
outputs.files file('node_modules')
}
task bowerInstall(type: NodeTask) {
script = file('node_modules/bower/bin/bower')
args = ['install']
inputs.files file('bower.json')
dependsOn npmPackages
}
task bowerPackages(type: Sync) {
from 'bower_components'
into "src/main/webapp/resources/js/bower"
exclude '**/test'
exclude '**/demo'
include '**/*.html'
include '**/*.js'
include '**/*.css'
dependsOn bowerInstall
mustRunAfter clean
}
processResources.dependsOn bowerPackages
task stage() {
dependsOn clean, bowerPackages, war
}
tasks.stage.doLast() {
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/assetCompile")
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/libs", exclude: "*.war")
}
war.mustRunAfter clean
task copyToLib(type: Copy) {
into "$buildDir/server"
from(configurations.compile) {
include "webapp-runner*"
}
}
stage.dependsOn(copyToLib)