diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/TestDirective.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/TestDirective.kt index d7f6cb7e..09dd4a31 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/TestDirective.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/TestDirective.kt @@ -9,16 +9,20 @@ class TestConfig(val project: Project, val isDefault : Boolean = false) { val testIncludes = arrayListOf("**/*Test.class") val testExcludes = arrayListOf() + @Directive var name: String = "" + @Directive fun args(vararg arg: String) { testArgs.addAll(arg) } + @Directive fun jvmArgs(vararg arg: String) { jvmArgs.addAll(arg) } + @Directive fun include(vararg arg: String) { testIncludes.apply { clear() @@ -26,6 +30,7 @@ class TestConfig(val project: Project, val isDefault : Boolean = false) { } } + @Directive fun exclude(vararg arg: String) { testExcludes.apply { clear() @@ -35,11 +40,12 @@ class TestConfig(val project: Project, val isDefault : Boolean = false) { } @Directive -fun Project.test(init: TestConfig.() -> Unit) = let { project -> +fun Project.test(init: TestConfig.() -> Unit): TestConfig = let { project -> with(testConfigs) { val tf = TestConfig(project).apply { init() } if (! map { it.name }.contains(tf.name)) { add(tf) + tf } else { throw KobaltException("Test configuration \"${tf.name}\" already exists, give it a different " + "name with test { name = ... }") diff --git a/src/main/kotlin/com/beust/kobalt/plugin/groovy/GroovyPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/groovy/GroovyPlugin.kt index 9f9153b3..13850571 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/groovy/GroovyPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/groovy/GroovyPlugin.kt @@ -44,8 +44,8 @@ class GroovyConfig(val project: Project) { } @Directive -fun Project.groovyCompiler(init: GroovyConfig.() -> Unit) = let { - val config = GroovyConfig(it) - config.init() - (Kobalt.findPlugin(GroovyPlugin.PLUGIN_NAME) as GroovyPlugin).addConfiguration(this, config) -} +fun Project.groovyCompiler(init: GroovyConfig.() -> Unit) = + GroovyConfig(this).also { config -> + config.init() + (Kobalt.findPlugin(GroovyPlugin.PLUGIN_NAME) as GroovyPlugin).addConfiguration(this, config) + } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt index 9eb99f47..e0d233c0 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt @@ -84,8 +84,8 @@ class JavaConfig(val project: Project) { } @Directive -fun Project.javaCompiler(init: JavaConfig.() -> Unit) = let { - val config = JavaConfig(it) - config.init() - (Kobalt.findPlugin(JavaPlugin.PLUGIN_NAME) as JavaPlugin).addConfiguration(this, config) -} +fun Project.javaCompiler(init: JavaConfig.() -> Unit) = + JavaConfig(this).also { config -> + config.init() + (Kobalt.findPlugin(JavaPlugin.PLUGIN_NAME) as JavaPlugin).addConfiguration(this, config) + } \ No newline at end of file diff --git a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt index b71951d3..8f16a3d4 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt @@ -154,11 +154,11 @@ class KotlinConfig(val project: Project) { } @Directive -fun Project.kotlinCompiler(init: KotlinConfig.() -> Unit) = let { - val config = KotlinConfig(it) - config.init() - (Kobalt.findPlugin(KotlinPlugin.PLUGIN_NAME) as KotlinPlugin).addConfiguration(this, config) -} +fun Project.kotlinCompiler(init: KotlinConfig.() -> Unit) = + KotlinConfig(this).also { config -> + config.init() + (Kobalt.findPlugin(KotlinPlugin.PLUGIN_NAME) as KotlinPlugin).addConfiguration(this, config) + } //class SourceLinkMapItem { // var dir: String = ""