aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle97
1 files changed, 97 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 000000000..efb65314a
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,97 @@
+plugins {
+ id "java"
+ id "checkstyle"
+ id "com.google.protobuf" version "0.8.11"
+}
+
+repositories {
+ mavenCentral()
+}
+
+ext {
+ guiceVersion = "4.2.2"
+ jettyVersion = "9.4.26.v20200117"
+ jerseyVersion = "2.30"
+ jacksonVersion = "2.9.9" // same version as jersey-media-json-jackson dependency
+ protobufVersion = "3.11.1"
+}
+
+sourceCompatibility = "1.8"
+compileJava.options.encoding = "UTF-8"
+
+checkstyle {
+ toolVersion = "8.26"
+ configFile = "gradle/checkstyle.xml" as File
+ checkstyleTest.enabled = false
+}
+
+protobuf {
+ generatedFilesBaseDir = "$projectDir/src"
+ protoc {
+ artifact = "com.google.protobuf:protoc:$protobufVersion"
+ }
+}
+
+dependencies {
+ implementation "commons-codec:commons-codec:1.13"
+ implementation "com.h2database:h2:1.4.200"
+ implementation "mysql:mysql-connector-java:8.0.18"
+ implementation "org.postgresql:postgresql:42.2.9"
+ implementation "com.microsoft.sqlserver:mssql-jdbc:7.4.1.jre8"
+ implementation "com.zaxxer:HikariCP:3.4.2"
+ implementation "io.netty:netty-all:4.1.44.Final"
+ implementation "org.slf4j:slf4j-jdk14:1.7.30"
+ implementation "com.google.inject:guice:$guiceVersion"
+ implementation "com.google.inject.extensions:guice-assistedinject:$guiceVersion"
+ implementation "org.owasp.encoder:encoder:1.2.2"
+ implementation "org.glassfish:javax.json:1.1.4"
+ implementation "org.eclipse.jetty:jetty-server:$jettyVersion"
+ implementation "org.eclipse.jetty:jetty-servlet:$jettyVersion"
+ implementation "org.eclipse.jetty:jetty-webapp:$jettyVersion"
+ implementation "org.eclipse.jetty:jetty-jndi:$jettyVersion"
+ implementation "org.eclipse.jetty:jetty-proxy:$jettyVersion"
+ implementation "org.eclipse.jetty.websocket:websocket-server:$jettyVersion"
+ implementation "org.glassfish.jersey.containers:jersey-container-servlet:$jerseyVersion"
+ implementation "org.glassfish.jersey.media:jersey-media-json-jackson:$jerseyVersion"
+ implementation "org.glassfish.jersey.inject:jersey-hk2:$jerseyVersion"
+ implementation "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jacksonVersion"
+ implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr353:$jacksonVersion"
+ implementation "org.liquibase:liquibase-core:3.8.5", {
+ exclude group: "ch.qos.logback", module: "logback-classic"
+ }
+ implementation "com.sun.mail:javax.mail:1.6.2"
+ implementation "org.jxls:jxls:2.4.7" // needs upgrade
+ implementation "org.jxls:jxls-poi:1.0.16" // needs upgrade
+ implementation "org.apache.velocity:velocity:1.7"
+ implementation "org.apache.velocity:velocity-tools:2.0"
+ implementation "org.apache.commons:commons-collections4:4.4"
+ implementation "org.mnode.ical4j:ical4j:2.0.5" // needs upgrade
+ implementation "com.fizzed:ch-smpp:6.0.0-netty4-beta-3"
+ implementation "net.java.dev.jna:jna-platform:5.5.0"
+ implementation "com.github.jnr:jnr-posix:3.0.51"
+ implementation "com.google.protobuf:protobuf-java:$protobufVersion"
+ implementation "javax.xml.bind:jaxb-api:2.3.1"
+ implementation "com.sun.xml.bind:jaxb-core:2.3.0.1"
+ implementation "com.sun.xml.bind:jaxb-impl:2.3.2"
+ implementation "javax.activation:activation:1.1.1"
+ testImplementation "junit:junit:4.13"
+}
+
+task copyDependencies(type: Copy) {
+ into "$projectDir/target/lib"
+ from configurations.runtimeClasspath
+}
+task copyBinary(type: Copy) {
+ into "$projectDir/target"
+ from jar
+}
+assemble.dependsOn(copyBinary, copyDependencies)
+
+jar {
+ manifest {
+ attributes(
+ "Main-Class": "org.traccar.Main",
+ "Implementation-Version": "4.7",
+ "Class-Path": configurations.runtimeClasspath.files.collect { "lib/$it.name" }.join(" "))
+ }
+}