diff --git a/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/annotations.xml b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/annotations.xml
index bef387a3e38..dc5cd1bbcbe 100644
--- a/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/annotations.xml
+++ b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/annotations.xml
@@ -10,4 +10,9 @@
-
+ -
+
+
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/initialization/dsl/annotations.xml b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/initialization/dsl/annotations.xml
new file mode 100644
index 00000000000..a33a584b9ed
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/initialization/dsl/annotations.xml
@@ -0,0 +1,7 @@
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/internal/annotations.xml b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/internal/annotations.xml
index 763aaf5197f..c14ebed20ae 100644
--- a/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/internal/annotations.xml
+++ b/libraries/tools/kotlin-gradle-plugin/kotlinAnnotation/org/gradle/api/internal/annotations.xml
@@ -7,4 +7,9 @@
-
+ -
+
+
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/pom.xml b/libraries/tools/kotlin-gradle-plugin/pom.xml
index ff7cb884e39..f3602e2ce62 100644
--- a/libraries/tools/kotlin-gradle-plugin/pom.xml
+++ b/libraries/tools/kotlin-gradle-plugin/pom.xml
@@ -52,6 +52,11 @@
kotlin-compiler
${project.version}
+
+ org.jetbrains.kotlin
+ kotlin-jdk-annotations
+ ${project.version}
+
org.jetbrains.kotlin
kdoc
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
index da3f962b9d4..720b177b824 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
@@ -31,12 +31,13 @@ import org.gradle.api.logging.Logging
import org.apache.commons.io.FileUtils
import java.io.IOException
import org.apache.commons.lang.StringUtils
+import org.gradle.api.initialization.dsl.ScriptHandler
public open class KotlinCompile(): AbstractCompile() {
val srcDirsRoots = HashSet()
val compiler = K2JVMCompiler()
- val logger = getLogger()
+ val logger = Logging.getLogger(getClass())
public val kotlinOptions: K2JVMCompilerArguments = K2JVMCompilerArguments()
@@ -112,17 +113,9 @@ public open class KotlinCompile(): AbstractCompile() {
args.outputDir =if (StringUtils.isEmpty(kotlinOptions.outputDir)) { getDestinationDir()?.getPath() } else { kotlinOptions.outputDir }
args.annotations = if (StringUtils.isEmpty(kotlinOptions.annotations)) { embeddedAnnotations.getPath() } else { kotlinOptions.annotations }
- val logger = Logging.getLogger(getClass())
val messageCollector = GradleMessageCollector(logger)
val exitCode = compiler.exec(messageCollector, args)
- val annotationsDir = embeddedAnnotations.getParentFile()
- try {
- FileUtils.deleteDirectory(annotationsDir);
- } catch (e : IOException) {
- logger.warn("Could not delete temporary annotations directory " + annotationsDir, e)
- }
-
when (exitCode) {
ExitCode.COMPILATION_ERROR -> throw GradleException("Compilation error. See log for more details")
ExitCode.INTERNAL_ERROR -> throw GradleException("Internal compiler error. See log for more details")
@@ -131,20 +124,26 @@ public open class KotlinCompile(): AbstractCompile() {
}
fun getAnnotations(): File {
- val jdkAnnotations: String = "kotlin-jdk-annotations.jar"
- val jdkAnnotationsResource = Resources.getResource(jdkAnnotations) ?:
- throw GradleException(jdkAnnotations + " not found in Kotlin gradle plugin classpath")
+ val configuration = getProject()
+ .getBuildscript()
+ .getConfigurations()
+ .getByName(ScriptHandler.CLASSPATH_CONFIGURATION)!!
- val jdkAnnotationsTempDir = Files.createTempDir()
- val jdkAnnotationsFile = File(jdkAnnotationsTempDir, jdkAnnotations)
+ val jdkAnnotationsFromClasspath = configuration.find { it.name.startsWith("kotlin-jdk-annotations") }
- Files.copy(Resources.newInputStreamSupplier(jdkAnnotationsResource), jdkAnnotationsFile)
- return jdkAnnotationsFile
+ if (jdkAnnotationsFromClasspath != null) {
+ logger.info("using jdk annontations from [${jdkAnnotationsFromClasspath.getAbsolutePath()}]")
+ return jdkAnnotationsFromClasspath
+ } else {
+ throw GradleException("kotlin-jdk-annotations not found in Kotlin gradle plugin classpath")
+ }
}
}
public open class KDoc(): SourceTask() {
+ val logger = Logging.getLogger(getClass())
+
/**
* Returns the directory to use to output the API docs
*/
@@ -216,7 +215,6 @@ public open class KDoc(): SourceTask() {
val compiler = KDocCompiler()
- val logger = Logging.getLogger(getClass())
val messageCollector = GradleMessageCollector(logger)
val exitCode = compiler.exec(messageCollector, args);