1 Star 1 Fork 0

KCETL/kestra

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
build.gradle 14.53 KB
一键复制 编辑 原始数据 按行查看 历史
Loïc Mathieu 提交于 2023-07-21 12:19 . chore: upgrade jOOQ to 3.17.4
plugins {
// micronaut
id "java"
id 'java-library'
id "idea"
id "com.github.johnrengelman.shadow" version "8.1.1"
id "application"
// test
id 'com.adarshr.test-logger' version '3.2.0'
// helper
id "com.github.ben-manes.versions" version "0.47.0"
// front
id 'org.siouan.frontend-jdk11' version '6.0.0' apply false
// release
id "io.github.gradle-nexus.publish-plugin" version "1.3.0"
id 'net.researchgate.release' version '3.0.2'
id "com.gorylenko.gradle-git-properties" version "2.4.1"
id 'signing'
id 'ru.vyarus.pom' version '2.2.2' apply false
id 'ru.vyarus.github-info' version '1.5.0' apply false
}
idea {
module {
downloadJavadoc = true
downloadSources = true
}
}
/**********************************************************************************************************************\
* Main
**********************************************************************************************************************/
mainClassName = "io.kestra.cli.App"
sourceCompatibility = 17
targetCompatibility = 17
dependencies {
implementation project(":cli")
testImplementation project(":cli")
}
/**********************************************************************************************************************\
* Dependencies
**********************************************************************************************************************/
allprojects {
group "io.kestra"
sourceCompatibility = 17
targetCompatibility = 17
repositories {
mavenCentral()
}
// micronaut
apply plugin: "java"
apply plugin: "java-library"
apply plugin: "idea"
apply plugin: "jacoco"
configurations {
developmentOnly // for dependencies that are needed for development only
}
//
configurations.all {
resolutionStrategy {
force("org.jooq:jooq:3.17.14")
force("org.slf4j:slf4j-api:1.7.36")
// ugly bug on google cloud plugins
force("com.google.protobuf:protobuf-java:3.22.3")
force("com.google.protobuf:protobuf-java-util:3.22.3")
// ugly bug for elastic plugins
force("org.apache.httpcomponents:httpclient:4.5.13")
}
}
// dependencies
dependencies {
// lombok
annotationProcessor "org.projectlombok:lombok:" + lombokVersion
compileOnly 'org.projectlombok:lombok:' + lombokVersion
// micronaut
annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
annotationProcessor "io.micronaut:micronaut-inject-java"
annotationProcessor "io.micronaut:micronaut-validation"
implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
implementation "io.micronaut:micronaut-inject"
implementation "io.micronaut:micronaut-validation"
implementation "io.micronaut:micronaut-runtime"
implementation "javax.annotation:javax.annotation-api"
implementation "io.micronaut.data:micronaut-data-model"
implementation "io.micronaut:micronaut-management"
implementation "io.micrometer:micrometer-core"
implementation "io.micronaut.micrometer:micronaut-micrometer-registry-prometheus"
api "io.micronaut:micronaut-http-client"
api "io.micronaut.rxjava2:micronaut-rxjava2-http-client"
// logs
implementation "org.slf4j:slf4j-api"
implementation "ch.qos.logback:logback-classic"
implementation group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.19.0'
implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.36'
implementation group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.7.36'
// jackson
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind'
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml'
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names'
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-guava'
// kestra
implementation group: 'com.devskiller.friendly-id', name: 'friendly-id', version: '1.1.0'
implementation 'com.github.jknack:handlebars:4.3.1'
implementation group: 'net.thisptr', name: 'jackson-jq', version: '1.0.0-preview.20230409'
// exposed utils
api group: 'com.google.guava', name: 'guava', version: '32.0.1-jre'
api group: 'commons-io', name: 'commons-io', version: '2.13.0'
api group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
api "io.swagger.core.v3:swagger-annotations"
}
}
/**********************************************************************************************************************\
* Test
**********************************************************************************************************************/
subprojects {
apply plugin: "com.adarshr.test-logger"
sourceCompatibility = 17
targetCompatibility = 17
dependencies {
// lombok
testAnnotationProcessor "org.projectlombok:lombok:" + lombokVersion
testCompileOnly 'org.projectlombok:lombok:' + lombokVersion
// micronaut
testAnnotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
testAnnotationProcessor "io.micronaut:micronaut-inject-java"
testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation "org.junit.jupiter:junit-jupiter-api"
testImplementation "io.micronaut.test:micronaut-test-junit5"
testImplementation "org.junit.jupiter:junit-jupiter-engine"
testImplementation "org.junit.jupiter:junit-jupiter-params"
testImplementation "org.junit-pioneer:junit-pioneer:2.0.1"
// hamcrest
testImplementation 'org.hamcrest:hamcrest:2.2'
testImplementation 'org.hamcrest:hamcrest-library:2.2'
testImplementation group: 'org.exparity', name: 'hamcrest-date', version: '2.0.8'
}
test {
useJUnitPlatform()
maxHeapSize = "4048m"
// configure en_US default locale for tests
systemProperty 'user.language', 'en'
systemProperty 'user.country', 'US'
environment 'SECRET_MY_SECRET', "{\"secretKey\":\"secretValue\"}".bytes.encodeBase64().toString()
environment 'SECRET_NON_B64_SECRET', "some secret value"
}
testlogger {
theme 'mocha-parallel'
showExceptions true
showFullStackTraces true
showCauses true
slowThreshold 2000
showStandardStreams true
showPassedStandardStreams false
showSkippedStandardStreams true
}
}
/**********************************************************************************************************************\
* Micronaut
**********************************************************************************************************************/
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
options.compilerArgs.add("-Xlint:all")
options.compilerArgs.add("-Xlint:-processing")
}
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
}
run.classpath += configurations.developmentOnly
test.classpath += configurations.developmentOnly
run.jvmArgs(
"-noverify",
"-XX:TieredStopAtLevel=1",
"-Dcom.sun.management.jmxremote",
'-Dmicronaut.environments=dev,override'
)
/**********************************************************************************************************************\
* Jar
**********************************************************************************************************************/
jar {
manifest {
attributes (
"Main-Class": mainClassName,
"X-Kestra-Name": project.name,
"X-Kestra-Title": project.name,
"X-Kestra-Group": project.group,
"X-Kestra-Version": project.version
)
}
}
shadowJar {
archiveClassifier.set(null)
mergeServiceFiles()
zip64 true
}
distZip.dependsOn shadowJar
distTar.dependsOn shadowJar
startScripts.dependsOn shadowJar
startShadowScripts.dependsOn jar
shadowJar.dependsOn 'ui:assembleFrontend'
/**********************************************************************************************************************\
* Executable Jar
**********************************************************************************************************************/
def executableDir = file("${buildDir}/executable")
def executable = file("${buildDir}/executable/${project.name}-${project.version}")
task writeExecutableJar() {
group "build"
description "Write an executable jar from shadow jar"
dependsOn = [shadowJar]
doFirst {
executableDir.mkdirs()
}
doLast {
executable.write("")
executable.append("\n: <<END_OF_KESTRA_SELFRUN\r\n")
executable.append(file("gradle/jar/selfrun.bat").readBytes())
executable.append("\r\nEND_OF_KESTRA_SELFRUN\r\n\n")
executable.append(file("gradle/jar/selfrun.sh").readBytes())
executable.append(file("${buildDir}/libs/${project.name}-${project.version}.jar").readBytes())
executable.setExecutable(true)
}
}
task executableJar(type: Zip) {
group "build"
description "Zip the executable jar"
dependsOn = [writeExecutableJar]
archiveFileName = "${project.name}-${project.version}.zip"
destinationDirectory = file("${buildDir}/archives")
from executableDir
archiveClassifier.set(null)
}
/**********************************************************************************************************************\
* Jacoco
**********************************************************************************************************************/
subprojects {
test {
finalizedBy jacocoTestReport
}
jacoco {
toolVersion = "0.8.8"
}
jacocoTestReport {
getAdditionalSourceDirs().setFrom(files(sourceSets.main.allSource.srcDirs))
getSourceDirectories().setFrom(files(sourceSets.main.allSource.srcDirs))
getClassDirectories().setFrom(files(sourceSets.main.output))
}
}
task jacoco(type: JacocoReport) {
dependsOn = subprojects.test
def javaProject = subprojects.findAll { it.name != 'ui' };
getAdditionalSourceDirs().setFrom(files(javaProject.sourceSets.main.allSource.srcDirs))
getSourceDirectories().setFrom(files(javaProject.sourceSets.main.allSource.srcDirs))
getClassDirectories().setFrom(files(javaProject.sourceSets.main.output))
getExecutionData().setFrom(files(javaProject.jacocoTestReport.executionData))
reports {
html.required = true
xml.required = true
csv.required = true
}
}
/**********************************************************************************************************************\
* Standalone
**********************************************************************************************************************/
task runStandalone(type: JavaExec) {
group = "application"
classpath = project(":cli").sourceSets.main.runtimeClasspath
mainClass = mainClassName
environment 'MICRONAUT_ENVIRONMENTS', 'override'
args 'server', 'standalone', '--plugins', 'local/plugins'
}
/**********************************************************************************************************************\
* Publish
**********************************************************************************************************************/
nexusPublishing {
repositoryDescription = "${project.group}:${rootProject.name}:${project.version}"
useStaging = !project.version.endsWith("-SNAPSHOT")
repositories {
sonatype {
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
}
}
}
subprojects {
apply plugin: "maven-publish"
apply plugin: 'signing'
apply plugin: 'ru.vyarus.pom'
apply plugin: 'ru.vyarus.github-info'
javadoc {
options {
locale = 'en_US'
encoding = 'UTF-8'
addStringOption("Xdoclint:none", "-quiet")
}
}
task sourcesJar(type: Jar) {
dependsOn = [':core:copyGradleProperties']
dependsOn = [':ui:assembleFrontend']
archiveClassifier.set('sources')
from sourceSets.main.allSource
}
sourcesJar.dependsOn ':core:copyGradleProperties'
sourcesJar.dependsOn ':ui:assembleFrontend'
task javadocJar(type: Jar) {
archiveClassifier.set('javadoc')
from javadoc
}
task testsJar(type: Jar) {
archiveClassifier.set('tests')
from sourceSets.test.output
}
github {
user 'kestra-io'
license 'Apache'
repository 'kestra'
site 'https://kestra.io'
}
pom {
description 'The modern, scalable orchestrator & scheduler open source platform'
developers {
developer {
id "tchiotludo"
name "Ludovic Dehon"
}
}
}
publishing {
publications {
sonatypePublication(MavenPublication) {
version project.version
if (project.name.contains('cli')) {
groupId "io.kestra"
artifactId "kestra"
artifact shadowJar
artifact executableJar
} else {
from components.java
groupId project.group
artifactId project.name
artifact sourcesJar
artifact javadocJar
artifact testsJar
}
}
}
}
signing {
sign publishing.publications.sonatypePublication
}
}
/**********************************************************************************************************************\
* Version
**********************************************************************************************************************/
release {
preCommitText = 'chore(version):'
preTagCommitMessage = 'update to version'
tagCommitMessage = 'tag version'
newVersionCommitMessage = 'update snapshot version'
tagTemplate = 'v${version}'
pushReleaseVersionBranch = 'master'
buildTasks = ['classes']
git {
requireBranch.set('release')
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kcetl/kestra.git
git@gitee.com:kcetl/kestra.git
kcetl
kestra
kestra
develop

搜索帮助

D67c1975 1850385 1daf7b77 1850385