70 lines
No EOL
1.7 KiB
Kotlin
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
|
|
}
|
|
} |