semver/example/kobalt/src/Build.kt
2016-07-17 18:21:02 -07:00

80 lines
No EOL
1.8 KiB
Kotlin

import com.beust.kobalt.localMaven
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.plugin.packaging.install
import com.beust.kobalt.project
import com.beust.kobalt.repos
import java.io.FileInputStream
import java.util.*
val repos = repos(localMaven())
fun StringBuilder.prepend(s: String): StringBuilder {
if (this.length > 0) {
this.insert(0, s)
}
return this
}
val example = 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) } }
return (p.getProperty(majorKey, "1") + "." + p.getProperty(minorKey, "0") + "." + p.getProperty(patchKey, "0")
+ StringBuilder(p.getProperty(preKey, "")).prepend("-")
+ StringBuilder(p.getProperty(metaKey, "")).prepend("+"))
}
version = versionFor()
val mainClassName = "net.thauvin.erik.semver.example.Example"
val processorJar = "net.thauvin.erik:semver:0.9.6-beta"
sourceDirectories {
path("src/main/java")
}
sourceDirectoriesTest {
path("src/test/java")
}
dependencies {
apt(processorJar)
compile(processorJar)
}
dependenciesTest {
}
apt {
outputDir = "/src/generated/java/"
}
install {
libDir = "deploy"
}
assemble {
jar {
manifest {
attributes("Main-Class", mainClassName)
}
}
}
application {
mainClass = mainClassName
}
}