diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle index f277fffb470..3b884a513c3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle @@ -52,7 +52,9 @@ test.dependsOn(":kotlin-allopen:install", ":kotlin-test:kotlin-test-jvm:install", ":kotlin-gradle-subplugin-example:install", ":kotlin-stdlib-jre8:install", - ":examples:annotation-processor-example:install") + ":examples:annotation-processor-example:install", + ":kotlin-scripting-common:install", + ":kotlin-scripting-jvm:install") // Validate that all dependencies 'install' tasks are added to 'test' dependencies diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index fdadf7dc1f6..2bc5cf160d8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -807,4 +807,14 @@ class KotlinGradleIT : BaseGradleIT() { } } + @Test + fun testScripting() { + Project("kotlinScripting").build("build") { + assertSuccessful() + assertCompiledKotlinSources( + listOf("app/src/main/kotlin/world.greet.kts", "script-template/src/main/kotlin/GreetScriptTemplate.kt") + ) + assertFileExists("${kotlinClassesDir("app", "main")}World_greet.class") + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/build.gradle new file mode 100644 index 00000000000..6c8499756db --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/build.gradle @@ -0,0 +1,5 @@ +apply plugin: 'kotlin' + +dependencies { + compile project(':script-template') +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/src/main/kotlin/world.greet.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/src/main/kotlin/world.greet.kts new file mode 100644 index 00000000000..4b41ac43333 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/app/src/main/kotlin/world.greet.kts @@ -0,0 +1,6 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +greet("World") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/build.gradle new file mode 100644 index 00000000000..506324b4f50 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/build.gradle @@ -0,0 +1,16 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/build.gradle new file mode 100644 index 00000000000..a66ada1ae01 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/build.gradle @@ -0,0 +1,6 @@ +apply plugin: 'kotlin' + +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + compile "org.jetbrains.kotlin:kotlin-scripting-common:$kotlin_version" +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/src/main/kotlin/GreetScriptTemplate.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/src/main/kotlin/GreetScriptTemplate.kt new file mode 100644 index 00000000000..c347be1f5f7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/src/main/kotlin/GreetScriptTemplate.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test + +import kotlin.script.experimental.annotations.* + +@KotlinScript +@KotlinScriptFileExtension("greet.kts") +abstract class GreetScriptTemplate { + fun greet(subject: String) { + println("Hello, $subject!") + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/src/main/resources/META-INF/kotlin/script/templates/org.jetbrains.kotlin.test.GreetScriptTemplate b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/script-template/src/main/resources/META-INF/kotlin/script/templates/org.jetbrains.kotlin.test.GreetScriptTemplate new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/settings.gradle new file mode 100644 index 00000000000..0539ba7655e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinScripting/settings.gradle @@ -0,0 +1 @@ +include ':script-template', ':app' \ No newline at end of file