semver/example/kobalt/src/Build.kt

70 lines
No EOL
1.7 KiB
Kotlin

import com.beust.kobalt.plugin.application.application
import com.beust.kobalt.plugin.apt.apt
import com.beust.kobalt.plugin.packaging.assemble
import com.beust.kobalt.project
import java.io.FileInputStream
import java.util.*
val p = project {
name = "example"
fun versionFor(): String {
val propsFile = "version.properties"
val majorKey = "version.major"
val minorKey = "version.minor"
val patchKey = "version.patch"
val metaKey = "version.buildmeta"
val preKey = "version.prerelease"
val p = Properties().apply {
FileInputStream(propsFile).use { fis -> load(fis) }
}
val metadata = StringBuilder(p.getProperty(metaKey, ""))
if (metadata.length > 0) {
metadata.insert(0, '-');
}
val prerelease = StringBuilder(p.getProperty(preKey, ""))
if (prerelease.length > 0) {
prerelease.insert(0, '+');
}
return (p.getProperty(majorKey, "1") + "." + p.getProperty(minorKey, "0") + "." + p.getProperty(patchKey, "0")
+ prerelease + metadata)
}
version = versionFor()
val mainClassName = "net.thauvin.erik.semver.example.Example"
val processorJar = "net.thauvin.erik:semver:0.9.5-beta"
sourceDirectories {
path("src/main/java")
}
sourceDirectoriesTest {
path("src/test/java")
}
dependencies {
apt(processorJar)
compile(processorJar)
}
dependenciesTest {
}
assemble {
jar {
manifest {
attributes("Main-Class", mainClassName)
}
}
}
application {
mainClass = mainClassName
}
}