-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
127 lines (103 loc) · 4.2 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
/*
* Copyright 2014 Michael Hoffer <info@michaelhoffer.de>. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY Michael Hoffer <info@michaelhoffer.de> "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Michael Hoffer <info@michaelhoffer.de> OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of Michael Hoffer <info@michaelhoffer.de>.
*/
apply plugin: 'java'
sourceCompatibility = '1.8'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
wrapper {
gradleVersion = '6.8'
}
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath (group: 'eu.mihosoft.vrl', name: 'vrl', version: '0.4.4.0.3')
}
}
repositories {
mavenCentral()
jcenter()
// TODO: optionally add custom maven repositories here
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.10'
compile (group: 'eu.mihosoft.vrl', name: 'vrl', version: '0.4.4.0.3')
compile (group: 'eu.mihosoft.vrl', name: 'vrl', version: '0.4.4.0.3', classifier: 'javadoc')
// TODO: Add dependencies here ...
// You can read more about how to add dependency here:
// http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies
// local dependencies can be added by putting them to the lib/jar folder
compile files("lib/jars/")
compile group: "tech.tablesaw", name: "tablesaw-core", version: "0.38.1"
}
def loadProperties(String sourceFileName) {
def config = new Properties()
def propFile = new File(projectDir,sourceFileName)
if (propFile.isFile()) {
config.load(new FileInputStream(propFile))
for (Map.Entry property in config) {
ext.set(property.key, property.value)
}
}
}
// create a fat-jar (class files plus dependencies
// excludes VRL.jar (plugin jar files must not start with 'vrl-\\d+')
jar {
// dependencies except VRL
from configurations.runtime.asFileTree.
filter({file->return !file.name.startsWith("vrl-0")}).
files.collect { zipTree(it) }
// project class files compiled from source
from files(sourceSets.main.output.classesDirs)
}
// loads the property file
loadProperties('build.properties')
String getVRLDir() {
String result;
if (vrldir.isEmpty()) {
result = System.getProperty("user.home");
result+= "/.vrl/"
result+= eu.mihosoft.vrl.system.Constants.VERSION_MAJOR
result+= "/default";
} else {
result = vrldir;
}
return result
}
// compiles and installs the vrl plugin to the specified folder
task installVRLPlugin(dependsOn: [clean,jar]) {
doLast {
println(">> copying vrl plugin to: " + getVRLDir() + "/plugin-updates")
copy {
from buildDir.getPath() + "/libs/" + rootProject.name + ".jar"
into getVRLDir() + "/plugin-updates"
include '**/*.jar'
}
}
}