VM-Operator/buildSrc/src/org.jdrupes.vmoperator.java-common-conventions.gradle
Michael N. Lipp 10182efea1
Feature/use java21 (#31)
Switch to using Java-21.
2024-06-13 22:15:33 +02:00

136 lines
3.7 KiB
Groovy

/*
* This file was generated by the Gradle 'init' task.
*
* This project uses @Incubating APIs which are subject to change.
*/
plugins {
// Apply the common versioning conventions.
// Put this at the start, because accessing project.version before
// this is applied makes things fail.
id 'org.jdrupes.vmoperator.versioning-conventions'
// Apply the java Plugin to add support for Java.
id 'java'
// Apply eclipse plugin
id 'eclipse'
// Access to git information
id 'org.ajoberstar.grgit'
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
constraints {
// Define dependency versions as constraints
// implementation 'org.apache.commons:commons-text:1.9'
}
}
// Configure sensible layout
sourceSets {
main {
java {
srcDirs = ['src']
}
resources {
srcDirs = ['resources']
}
}
test {
java {
srcDirs = ['test']
}
resources {
srcDirs = ['test-resources']
}
}
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
jar {
manifest {
def matchExpr = [ project.tagName + "*" ]
inputs.property("gitDescriptor",
{ grgit.describe(always: true, match: matchExpr) })
// Set Git revision information in the manifests of built bundles
def gitDesc = grgit.describe(always: true, match: matchExpr)
attributes([
"Implementation-Title": project.name,
"Implementation-Version": "$project.version (built from ${gitDesc})",
"Implementation-Vendor": grgit.repository.jgit.repository.config.getString("user", null, "name")
+ " (" + grgit.repository.jgit.repository.config.getString("user", null, "email") + ")",
"Git-Descriptor": gitDesc,
"Git-SHA": grgit.head().id,
])
}
}
eclipse {
project {
file {
// closure executed after .project content is loaded from existing file
// and before gradle build information is merged
beforeMerged { project ->
project.natures.clear()
project.buildCommands.clear()
}
project.natures += 'org.eclipse.buildship.core.gradleprojectnature'
project.buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder'
if (plugins.hasPlugin('java')) {
project.buildCommand 'org.eclipse.jdt.core.javabuilder'
project.natures += 'net.sf.eclipsecs.core.CheckstyleNature'
project.buildCommand 'net.sf.eclipsecs.core.CheckstyleBuilder'
project.natures += 'ch.acanda.eclipse.pmd.builder.PMDNature'
project.buildCommand 'ch.acanda.eclipse.pmd.builder.PMDBuilder'
}
if (plugins.hasPlugin('biz.aQute.bnd')) {
project.natures += 'bndtools.core.bndnature'
project.buildCommand 'bndtools.core.bndbuilder'
}
}
}
classpath {
downloadJavadoc = true
downloadSources = true
}
jdt {
file {
withProperties { properties ->
def formatterPrefs = new Properties()
rootProject.file("gradle/org.eclipse.jdt.core.formatter.prefs")
.withInputStream { formatterPrefs.load(it) }
properties.putAll(formatterPrefs)
}
}
}
}
testing {
suites {
// Configure the built-in test suite
test {
// Use JUnit Jupiter test framework
useJUnitJupiter('5.9.1')
}
}
}