102 lines
2.7 KiB
Groovy
102 lines
2.7 KiB
Groovy
/*
|
|
* This file was generated by the Gradle 'init' task.
|
|
*
|
|
* This generated file contains a sample Java application project to get you started.
|
|
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
|
|
* User Manual available at https://docs.gradle.org/8.1.1/userguide/building_java_projects.html
|
|
*/
|
|
|
|
plugins {
|
|
id 'java'
|
|
id 'groovy'
|
|
id 'application'
|
|
id "com.github.johnrengelman.shadow" version "7.1.2"
|
|
id "net.nemerosa.versioning" version "2.15.1"
|
|
id "com.netflix.nebula.ospackage" version "11.2.0"
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation 'org.codehaus.groovy:groovy:3.0.13'
|
|
testImplementation 'org.spockframework:spock-core:2.2-groovy-3.0'
|
|
testImplementation 'junit:junit:4.13.2'
|
|
|
|
implementation 'org.slf4j:slf4j-api:2.0.7'
|
|
implementation 'ch.qos.logback:logback-classic:1.3.8'
|
|
implementation 'info.picocli:picocli:4.7.4'
|
|
annotationProcessor 'info.picocli:picocli-codegen:4.7.4'
|
|
}
|
|
|
|
// Apply a specific Java toolchain to ease working on different environments.
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(11)
|
|
}
|
|
}
|
|
|
|
application {
|
|
// Define the main class for the application.
|
|
mainClass = 'biz.nellemann.jperf.App'
|
|
}
|
|
|
|
tasks.named('test') {
|
|
// Use JUnit Platform for unit tests.
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
|
|
jar {
|
|
manifest {
|
|
attributes(
|
|
'Created-By' : "Gradle ${gradle.gradleVersion}",
|
|
'Build-OS' : "${System.properties['os.name']} ${System.properties['os.arch']} ${System.properties['os.version']}",
|
|
'Build-Jdk' : "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})",
|
|
'Build-User' : System.properties['user.name'],
|
|
'Build-Version' : versioning.info.tag ?: (versioning.info.branch + "-" + versioning.info.build),
|
|
'Build-Revision' : versioning.info.commit,
|
|
'Build-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ss.SSSZ").toString(),
|
|
)
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.netflix.nebula.ospackage'
|
|
ospackage {
|
|
packageName = 'jperf'
|
|
release = '1'
|
|
user = 'root'
|
|
packager = "Mark Nellemann <mark.nellemann@gmail.com>"
|
|
|
|
into '/opt/jperf'
|
|
|
|
from(shadowJar.outputs.files) {
|
|
into 'lib'
|
|
}
|
|
|
|
from('build/scriptsShadow') {
|
|
into 'bin'
|
|
}
|
|
|
|
from(['README.md', 'LICENSE']) {
|
|
into 'doc'
|
|
}
|
|
|
|
}
|
|
|
|
buildDeb {
|
|
dependsOn build, startShadowScripts
|
|
}
|
|
|
|
buildRpm {
|
|
dependsOn build, startShadowScripts
|
|
os = org.redline_rpm.header.Os.LINUX
|
|
}
|
|
|
|
tasks.register("packages") {
|
|
group "build"
|
|
dependsOn ":buildDeb"
|
|
dependsOn ":buildRpm"
|
|
}
|