96 lines
2.8 KiB
Groovy
96 lines
2.8 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id("org.jetbrains.gradle.plugin.idea-ext") version "1.0"
|
|
id "io.freefair.lombok" version "8.3"
|
|
id "me.champeau.jmh" version "0.6.6"
|
|
}
|
|
|
|
group 'marginalia'
|
|
version 'SNAPSHOT'
|
|
|
|
compileJava.options.encoding = "UTF-8"
|
|
compileTestJava.options.encoding = "UTF-8"
|
|
|
|
// Enable preview features for the entire project
|
|
subprojects.forEach {it ->
|
|
it.tasks.withType(JavaCompile).configureEach {
|
|
options.compilerArgs += ['--enable-preview']
|
|
}
|
|
it.tasks.withType(JavaExec).configureEach {
|
|
jvmArgs += ['--enable-preview']
|
|
}
|
|
it.tasks.withType(Test).configureEach {
|
|
jvmArgs += ['--enable-preview']
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
apply plugin: 'java'
|
|
apply plugin: 'io.freefair.lombok'
|
|
|
|
dependencies {
|
|
implementation libs.lombok
|
|
testImplementation libs.lombok
|
|
annotationProcessor libs.lombok
|
|
|
|
lombok libs.lombok // prevent plugin from downgrading the version to something incompatible with '19
|
|
}
|
|
|
|
}
|
|
|
|
tasks.register('dist', Copy) {
|
|
from subprojects.collect { it.tasks.withType(Tar) }
|
|
into "$buildDir/dist"
|
|
|
|
// For local development, each processes that are to be triggerable
|
|
// from the control-service need to go here to end up somewhere the
|
|
// control-service can find them
|
|
|
|
doLast {
|
|
copy {
|
|
from tarTree("$buildDir/dist/converter-process.tar")
|
|
into "$projectDir/run/dist/"
|
|
}
|
|
copy {
|
|
from tarTree("$buildDir/dist/crawler-process.tar")
|
|
into "$projectDir/run/dist/"
|
|
}
|
|
copy {
|
|
from tarTree("$buildDir/dist/loader-process.tar")
|
|
into "$projectDir/run/dist/"
|
|
}
|
|
copy {
|
|
from tarTree("$buildDir/dist/website-adjacencies-calculator.tar")
|
|
into "$projectDir/run/dist/"
|
|
}
|
|
copy {
|
|
from tarTree("$buildDir/dist/index-construction-process.tar")
|
|
into "$projectDir/run/dist/"
|
|
}
|
|
}
|
|
}
|
|
idea {
|
|
module {
|
|
// Exclude these directories from being indexed by IntelliJ
|
|
// as they tend to bring the IDE to its knees and use up all
|
|
// Inotify spots in a hurry
|
|
excludeDirs.add(file("$projectDir/run/backup"))
|
|
excludeDirs.add(file("$projectDir/run/model"))
|
|
excludeDirs.add(file("$projectDir/run/dist"))
|
|
excludeDirs.add(file("$projectDir/run/samples"))
|
|
excludeDirs.add(file("$projectDir/run/db"))
|
|
excludeDirs.add(file("$projectDir/run/logs"))
|
|
excludeDirs.add(file("$projectDir/run/install"))
|
|
excludeDirs.add(file("$projectDir/run/data"))
|
|
excludeDirs.add(file("$projectDir/run/conf"))
|
|
excludeDirs.add(file("$projectDir/run/vol"))
|
|
excludeDirs.add(file("$projectDir/run/test-data"))
|
|
}
|
|
}
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(21))
|
|
}
|
|
}
|