aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
blob: 48ca50c797c117d2f294b044d2f2800977370978 (plain)
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
plugins {
    id "java"
    id "checkstyle"
    id "com.google.protobuf" version "0.9.4"
    id "org.kordamp.gradle.project-enforcer" version "0.13.0"
}

repositories {
    mavenCentral()
}

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

compileJava.options.encoding = "UTF-8"
jar.destinationDirectory = file("$projectDir/target")

checkstyle {
    toolVersion = "10.17.0"
    configFile = file("gradle/checkstyle.xml")
    checkstyleTest.enabled = false
}

enforce {
    // noinspection UnnecessaryQualifiedReference
    rule(enforcer.rules.EnforceBytecodeVersion) { r ->
        r.maxJdkVersion = "17"
    }
}

ext {
    guiceVersion = "7.0.0"
    jettyVersion = "11.0.21"
    jerseyVersion = "3.1.7"
    jacksonVersion = "2.17.2" // same version as jersey-media-json-jackson dependency
    protobufVersion = "4.27.2"
    jxlsVersion = "2.14.0" // version 3 requires java 17
    junitVersion = "5.10.3"
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:$protobufVersion"
    }
}

dependencies {
    implementation "commons-codec:commons-codec:1.17.1"
    implementation "com.h2database:h2:2.3.230"
    implementation "com.mysql:mysql-connector-j:9.0.0"
    implementation "org.mariadb.jdbc:mariadb-java-client:3.4.1"
    implementation "org.postgresql:postgresql:42.7.3"
    implementation "com.microsoft.sqlserver:mssql-jdbc:12.6.3.jre11"
    implementation "com.zaxxer:HikariCP:5.1.0"
    implementation "io.netty:netty-all:4.1.112.Final"
    implementation "org.slf4j:slf4j-jdk14:2.0.13"
    implementation "com.google.inject:guice:$guiceVersion"
    implementation "com.google.inject.extensions:guice-servlet:$guiceVersion"
    implementation "org.glassfish:jakarta.json:2.0.1"
    implementation "com.sun.mail:jakarta.mail:2.0.1"
    implementation "org.eclipse.jetty:jetty-server:$jettyVersion"
    implementation "org.eclipse.jetty:jetty-servlet:$jettyVersion"
    implementation "org.eclipse.jetty:jetty-servlets:$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-jetty-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 "org.glassfish.hk2:guice-bridge:3.1.0" // same version as jersey-hk2
    implementation "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jacksonVersion"
    implementation "com.fasterxml.jackson.datatype:jackson-datatype-jakarta-jsonp:$jacksonVersion"
    implementation "org.liquibase:liquibase-core:4.23.2" // upgrade has issues
    implementation "org.apache.commons:commons-jexl3:3.4.0"
    implementation "org.jxls:jxls:$jxlsVersion"
    implementation "org.jxls:jxls-poi:$jxlsVersion"
    implementation "org.apache.velocity:velocity-engine-core:2.3"
    implementation "org.apache.velocity.tools:velocity-tools-generic:3.1"
    implementation "org.apache.commons:commons-collections4:4.4"
    implementation "org.mnode.ical4j:ical4j:3.2.18"
    implementation "org.locationtech.spatial4j:spatial4j:0.8"
    implementation "org.locationtech.jts:jts-core:1.19.0"
    implementation "net.java.dev.jna:jna-platform:5.14.0"
    implementation "com.github.jnr:jnr-posix:3.1.19"
    implementation "com.google.protobuf:protobuf-java:$protobufVersion"
    implementation "com.amazonaws:aws-java-sdk-sns:1.12.765"
    implementation "org.apache.kafka:kafka-clients:3.8.0"
    implementation "com.hivemq:hivemq-mqtt-client:1.3.3"
    implementation "redis.clients:jedis:5.1.3"
    implementation "com.google.firebase:firebase-admin:9.3.0"
    implementation "com.nimbusds:oauth2-oidc-sdk:11.13"
    implementation "com.rabbitmq:amqp-client:5.21.0"
    implementation "com.warrenstrange:googleauth:1.5.0"
    implementation "com.google.openlocationcode:openlocationcode:1.0.4"
    testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"
    testImplementation "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
    testImplementation "org.mockito:mockito-core:5.12.0"
}

test {
    useJUnitPlatform()
}

tasks.register('copyDependencies', Copy) {
    into "$projectDir/target/lib"
    from configurations.runtimeClasspath
}
assemble.dependsOn(copyDependencies)

jar {
    manifest {
        attributes(
                "Main-Class": "org.traccar.Main",
                "Implementation-Version": "6.2",
                "Class-Path": configurations.runtimeClasspath.files.collect { "lib/$it.name" }.join(" "))
    }
}