2025-06-06 17:38:24 -05:00

131 lines
4.6 KiB
Groovy

plugins {
id 'org.springframework.boot'
id 'java'
}
apply from: '../../gradle/coverage/java-coverage.gradle'
apply from: "../../gradle/versioning/versioning.gradle"
apply from: "../../gradle/docker/docker.gradle"
ext {
docker_repo = 'datahub-gms'
}
ext.apiProject = project(':metadata-service:restli-api')
dependencies {
implementation project(':metadata-service:factories')
implementation project(':metadata-service:auth-filter')
implementation project(':metadata-service:servlet')
implementation project(':metadata-service:auth-servlet-impl')
implementation project(':metadata-service:graphql-servlet-impl')
implementation project(':metadata-service:openapi-servlet')
implementation project(':metadata-service:openapi-entity-servlet')
implementation project(':metadata-service:openapi-analytics-servlet')
implementation project(':metadata-service:schema-registry-servlet')
implementation project(':metadata-service:iceberg-catalog')
implementation 'org.apache.iceberg:iceberg-core:1.6.1'
runtimeOnly project(':metadata-jobs:mce-consumer')
runtimeOnly project(':metadata-jobs:mae-consumer')
runtimeOnly project(':metadata-jobs:pe-consumer')
runtimeOnly externalDependency.awsSecretsManagerJdbc
runtimeOnly externalDependency.h2
runtimeOnly externalDependency.mariadbConnector
runtimeOnly externalDependency.mysqlConnector
runtimeOnly externalDependency.postgresql
implementation(externalDependency.springBootStarterWeb)
implementation(externalDependency.springBootStarterJetty)
implementation(externalDependency.springBootStarterValidation)
implementation externalDependency.jettyJmx
implementation externalDependency.springWebMVC
implementation externalDependency.springBootAutoconfigure
implementation externalDependency.servletApi
runtimeOnly externalDependency.opentelemetryExporter
runtimeOnly externalDependency.openTelemetryExporterLogging
runtimeOnly externalDependency.openTelemetryExporterCommon
implementation spec.product.pegasus.restliDocgen
implementation spec.product.pegasus.restliSpringBridge
compileOnly externalDependency.lombok
annotationProcessor externalDependency.lombok
runtimeOnly externalDependency.log4jCore
runtimeOnly externalDependency.log4j2Api
runtimeOnly externalDependency.logbackClassic
implementation externalDependency.awsMskIamAuth
implementation externalDependency.azureIdentityExtensions
implementation externalDependency.azureIdentity
testRuntimeOnly externalDependency.logbackClassic
implementation externalDependency.charle
testImplementation externalDependency.testng
testImplementation externalDependency.springBootTest
testRuntimeOnly externalDependency.logbackClassic
}
configurations.all{
exclude group: "com.charleskorn.kaml", module:"kaml"
}
tasks.register('run') {
group = 'application' // Add a group for better organization
description = 'Runs the application with Gretty'
dependsOn 'bootRun' // spring task
}
bootJar {
// backwards compatible with old war archive name
archiveFileName = 'war.war'
mainClass = 'com.linkedin.gms.GMSApplication'
}
bootRun {
environment "SCHEMA_REGISTRY_TYPE", "INTERNAL"
environment "KAFKA_SCHEMAREGISTRY_URL", "http://localhost:8080/schema-registry/api"
}
docker {
dependsOn bootJar
name "${docker_registry}/${docker_repo}:${versionTag}"
dockerfile file("${rootProject.projectDir}/docker/${docker_repo}/Dockerfile")
files bootJar.outputs.files
files fileTree(rootProject.projectDir) {
include '.dockerignore'
include 'docker/monitoring/*'
include "docker/${docker_repo}/*"
include 'metadata-models/src/main/resources/*'
}.exclude {
i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden())
}
additionalTag("Debug", "${docker_registry}/${docker_repo}:debug")
// Add build args if they are defined (needed for some CI or enterprise environments)
def dockerBuildArgs = [:]
if (project.hasProperty('alpineApkRepositoryUrl')) {
dockerBuildArgs.ALPINE_REPO_URL = project.getProperty('alpineApkRepositoryUrl')
}
if (project.hasProperty('githubMirrorUrl')) {
dockerBuildArgs.GITHUB_REPO_URL = project.getProperty('githubMirrorUrl')
}
if (project.hasProperty('mavenCentralRepositoryUrl')) {
dockerBuildArgs.MAVEN_CENTRAL_REPO_URL = project.getProperty('mavenCentralRepositoryUrl')
}
if (dockerBuildArgs.size() > 0) {
buildArgs(dockerBuildArgs)
}
debugBuildArgs = [APP_ENV: 'dev']
}
test {
jacoco {
// This contains quickstart tested code for jetty startup
excludes = ["com.linkedin.gms.CommonApplicationConfig",
"com.linkedin.gms.ServletConfig",
"com.linkedin.gms.GMSApplication"]
}
}