Files
kestra/platform/build.gradle
2025-01-15 18:37:17 +01:00

158 lines
8.5 KiB
Groovy

plugins {
id 'java-platform'
id 'maven-publish'
}
group = 'io.kestra'
description = 'Kestra - Platform BOM'
javaPlatform {
allowDependencies()
}
dependencies {
// versions for libraries with multiple module but no BOM
def slf4jVersion = "2.0.16"
def protobufVersion = "3.25.5"
def bouncycastleVersion = "1.79"
def aetherVersion = "1.1.0"
def jollydayVersion = "0.32.0"
def jsonschemaVersion = "4.37.0"
def kafkaVersion = "3.9.0"
def opensearchVersion = "2.19.0"
def opensearchRestVersion = "2.18.0"
def flyingSaucerVersion = "9.11.2"
def jacksonVersion = "2.18.2"
// as Jackson is in the Micronaut BOM, to force its version we need to use enforcedPlatform but it didn't really work, see later :(
api enforcedPlatform("com.fasterxml.jackson:jackson-bom:$jacksonVersion")
// needed because httpclient fails to communicate with docker socket with > v5.4 (https://github.com/docker-java/docker-java/pull/2293#issuecomment-2435455322) and opensearch-java brings that version
api enforcedPlatform("org.apache.httpcomponents.client5:httpclient5:5.3.1")
api platform("io.micronaut.platform:micronaut-platform:4.7.3")
api platform("io.qameta.allure:allure-bom:2.29.1")
// we define cloud bom here for GCP, Azure and AWS so they are aligned for all plugins that use them (secret, storage, oss and ee plugins)
api platform('com.google.cloud:libraries-bom:26.52.0')
api platform("com.azure:azure-sdk-bom:1.2.30")
api platform('software.amazon.awssdk:bom:2.29.37')
constraints {
// Forced dependencies
api("org.slf4j:slf4j-api:$slf4jVersion")
// need to force this dep as mysql-connector brings a version incompatible with the Google Cloud libs
api("com.google.protobuf:protobuf-java:$protobufVersion")
api("com.google.protobuf:protobuf-java-util:$protobufVersion")
// ugly hack for elastic plugins
api("org.apache.httpcomponents:httpclient:4.5.14")
// ugly hack on crypto plugin
api("org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion")
api("org.bouncycastle:bcpg-jdk18on:$bouncycastleVersion")
// ugly hack for jackson: as enforcing platform didn't work (it didn't enforce everywhere, not in plugins), we had to force all jackson libs individually.
api("com.fasterxml.jackson.core:jackson-core:$jacksonVersion")
api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
api("com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion")
api("com.fasterxml.jackson.module:jackson-module-parameter-names:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-ion:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-guava:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion")
// issue with the Docker lib having a too old version for the k8s extension
api("org.apache.commons:commons-compress:1.27.1")
// Kafka
api "org.apache.kafka:kafka-clients:$kafkaVersion"
api "org.apache.kafka:kafka-streams:$kafkaVersion"
// AWS CRT is not included in the AWS BOM but needed for the S3 Transfer manager
api 'software.amazon.awssdk.crt:aws-crt:0.33.7'
// Other libs
api("org.projectlombok:lombok:1.18.36")
api("org.codehaus.janino:janino:3.1.12")
api group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.24.3'
api group: 'org.slf4j', name: 'jul-to-slf4j', version: slf4jVersion
api group: 'org.slf4j', name: 'jcl-over-slf4j', version: slf4jVersion
api group: 'org.fusesource.jansi', name: 'jansi', version: '2.4.1'
api group: 'com.devskiller.friendly-id', name: 'friendly-id', version: '1.1.0'
api group: 'net.thisptr', name: 'jackson-jq', version: '1.2.0'
api group: 'com.google.guava', name: 'guava', version: '33.3.1-jre'
api group: 'commons-io', name: 'commons-io', version: '2.18.0'
api group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0'
api 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
api 'ch.qos.logback.contrib:logback-jackson:0.1.5'
api "org.eclipse.aether:aether-api:$aetherVersion"
api "org.eclipse.aether:aether-spi:$aetherVersion"
api "org.eclipse.aether:aether-util:$aetherVersion"
api "org.eclipse.aether:aether-impl:$aetherVersion"
api "org.eclipse.aether:aether-connector-basic:$aetherVersion"
api "org.eclipse.aether:aether-transport-file:$aetherVersion"
api "org.eclipse.aether:aether-transport-http:$aetherVersion"
api 'org.apache.maven:maven-aether-provider:3.3.9'
api 'com.github.oshi:oshi-core:6.6.5'
api 'io.pebbletemplates:pebble:3.2.2'
api group: 'co.elastic.logging', name: 'logback-ecs-encoder', version: '1.6.0'
api group: 'de.focus-shift', name: 'jollyday-core', version: jollydayVersion
api group: 'de.focus-shift', name: 'jollyday-jaxb', version: jollydayVersion
api 'nl.basjes.gitignore:gitignore-reader:1.9.0'
api group: 'dev.failsafe', name: 'failsafe', version: '3.3.2'
api group: 'com.cronutils', name: 'cron-utils', version: '9.2.1'
api group: 'com.github.victools', name: 'jsonschema-generator', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-jakarta-validation', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-jackson', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-swagger-2', version: jsonschemaVersion
api 'com.h2database:h2:2.3.232'
api 'mysql:mysql-connector-java:8.0.33'
api 'org.postgresql:postgresql:42.7.4'
api 'com.github.docker-java:docker-java:3.4.1'
api 'com.github.docker-java:docker-java-transport-httpclient5:3.4.1'
api (group: 'org.opensearch.client', name: 'opensearch-java', version: "$opensearchVersion")
api (group: 'org.opensearch.client', name: 'opensearch-rest-client', version: "$opensearchRestVersion")
api (group: 'org.opensearch.client', name: 'opensearch-rest-high-level-client', version: "$opensearchRestVersion") // used by the elasticsearch plugin
api 'org.jsoup:jsoup:1.18.3'
api "org.xhtmlrenderer:flying-saucer-core:$flyingSaucerVersion"
api "org.xhtmlrenderer:flying-saucer-pdf:$flyingSaucerVersion"
api group: 'jakarta.mail', name: 'jakarta.mail-api', version: '2.1.3'
api group: 'org.eclipse.angus', name: 'jakarta.mail', version: '2.0.3'
api group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.1.8'
// Json Diff
api group: 'com.github.java-json-tools', name: 'json-patch', version: '1.13'
// force transitive version to fix CVE
api 'org.codehaus.plexus:plexus-utils:3.0.24' // https://nvd.nist.gov/vuln/detail/CVE-2022-4244
// for jOOQ to the same version as we use in EE
api ("org.jooq:jooq:3.19.16")
// Tests
api "org.junit-pioneer:junit-pioneer:2.3.0"
api 'org.hamcrest:hamcrest:3.0'
api 'org.hamcrest:hamcrest-library:3.0'
api group: 'org.exparity', name: 'hamcrest-date', version: '2.0.8'
api "org.wiremock:wiremock:3.10.0"
api "org.apache.kafka:kafka-streams-test-utils:$kafkaVersion"
api "com.microsoft.playwright:playwright:1.49.0"
// Kestra components
api "io.kestra:core:$version"
api "io.kestra:model:$version"
api "io.kestra:script:$version"
api "io.kestra:processor:$version"
api "io.kestra:tests:$version"
// the following are used in plugin tests so they are in the platform even if normally not used out there
api "io.kestra:repository-memory:$version"
api "io.kestra:runner-memory:$version"
api "io.kestra:storage-local:$version"
}
}
publishing {
publications {
sonatypePublication(MavenPublication) {
groupId project.group
artifactId project.name
from components.javaPlatform
}
}
}