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)) } }