Drop external annotations support in build tools
External annotations will only be considered in the IDE for additional inspections based on more precise types in Java libraries
This commit is contained in:
committed by
Dmitry Jemerov
parent
f2efd30a5d
commit
13c54a2678
@@ -63,11 +63,6 @@
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<version>${project.version}</version>
|
||||
<configuration>
|
||||
<annotationPaths>
|
||||
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
|
||||
</annotationPaths>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -56,11 +56,6 @@
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<version>${project.version}</version>
|
||||
<configuration>
|
||||
<annotationPaths>
|
||||
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
|
||||
</annotationPaths>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.android.build.gradle.BaseExtension org.gradle.api.NamedDomainObjectContainer<com.android.build.gradle.api.AndroidSourceSet> getSourceSets()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllJava()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllSource()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getJava()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.ApkVariant com.android.builder.DefaultBuildType getBuildType()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.ApkVariant java.util.List<com.android.builder.DefaultProductFlavor> getProductFlavors()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.AidlCompile getAidlCompile()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.ProcessAndroidResources getProcessResources()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.RenderscriptCompile getRenderscriptCompile()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.LibraryVariant com.android.builder.DefaultBuildType getBuildType()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.io.Files java.io.File createTempDir()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.apache.commons.io.FilenameUtils java.lang.String getExtension(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.NamedDomainObjectCollection T getByName(java.lang.String)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Plugin void apply(T)">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun apply(p0 : T) : Unit"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='org.gradle.api.Project java.util.Map<java.lang.String,?> getProperties()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.file.ConfigurableFileCollection files(java.lang.Object...)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.initialization.dsl.ScriptHandler getBuildscript()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getBuildscript() : ScriptHandler"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.logging.Logger getLogger()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.plugins.Convention getConvention()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='org.gradle.api.Project org.gradle.api.plugins.ExtensionContainer getExtensions()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.plugins.PluginContainer getPlugins()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='org.gradle.api.Project org.gradle.api.tasks.TaskContainer getTasks()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.artifacts.Configuration org.gradle.api.artifacts.ResolvedConfiguration getResolvedConfiguration()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.artifacts.ConfigurationContainer org.gradle.api.artifacts.Configuration detachedConfiguration(org.gradle.api.artifacts.Dependency...)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.artifacts.dsl.DependencyHandler org.gradle.api.artifacts.Dependency create(java.lang.Object)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection filter(org.gradle.api.specs.Spec<? super java.io.File>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection minus(org.gradle.api.file.FileCollection)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection minus(org.gradle.api.file.FileCollection) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection plus(org.gradle.api.file.FileCollection)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection plus(org.gradle.api.file.FileCollection) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.SourceDirectorySet java.util.Set<java.io.File> getSrcDirs()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.ConfigurationContainer getConfigurations()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getConfigurations() : ConfigurationContainer""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.Project getProject()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getProject() : Project"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.logging.Logger getLogger()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.internal.HasConvention org.gradle.api.plugins.Convention getConvention()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getConvention() : Convention"" />
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.internal.project.ProjectInternal org.gradle.api.internal.tasks.TaskContainerInternal getTasks()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.logging.Logging org.gradle.api.logging.Logger getLogger(java.lang.Class)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.plugins.Convention T getPlugin(java.lang.Class<T>)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.Convention java.util.Map<java.lang.String,java.lang.Object> getPlugins()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getPlugins() : MutableMap<String, Any>"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.Convention org.gradle.api.internal.DynamicObject getExtensionsAsDynamicObject()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getExtensionsAsDynamicObject() : DynamicObject"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.ExtensionAware org.gradle.api.plugins.ExtensionContainer getExtensions()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.PluginContainer T apply(java.lang.Class<T>)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin apply(java.lang.String)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin findPlugin(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.Nullable'/>
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.SourceTask org.gradle.api.file.FileTree getSource()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getSource() : FileTree""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='org.gradle.api.tasks.TaskContainer T create(java.lang.String, java.lang.Class<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.compile.AbstractCompile org.gradle.api.file.FileCollection getClasspath()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -47,11 +47,6 @@
|
||||
<artifactId>kotlin-compiler-embeddable</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-jdk-annotations</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
@@ -64,12 +59,6 @@
|
||||
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
|
||||
|
||||
<resources>
|
||||
<resource>
|
||||
<!-- jdkAnnotations -->
|
||||
<directory>${kotlin-sdk}/lib</directory>
|
||||
<includes><include>kotlin-jdk-annotations.jar</include></includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${project.basedir}/src/main/resources</directory>
|
||||
</resource>
|
||||
@@ -80,11 +69,6 @@
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<version>${project.version}</version>
|
||||
<configuration>
|
||||
<annotationPaths>
|
||||
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
|
||||
</annotationPaths>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
+24
-42
@@ -1,31 +1,32 @@
|
||||
package org.jetbrains.kotlin.gradle.tasks
|
||||
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import java.io.File
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
import org.apache.commons.lang.StringUtils
|
||||
import org.codehaus.groovy.runtime.MethodClosure
|
||||
import org.gradle.api.GradleException
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.gradle.api.tasks.SourceTask
|
||||
import java.util.HashSet
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.apache.commons.lang.StringUtils
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
import org.jetbrains.kotlin.cli.js.K2JSCompiler
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.codehaus.groovy.runtime.MethodClosure
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.jetbrains.kotlin.cli.common.CLICompiler
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import org.jetbrains.kotlin.idea.JetFileType
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.js.K2JSCompiler
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
import org.jetbrains.kotlin.doc.KDocArguments
|
||||
import org.jetbrains.kotlin.doc.KDocCompiler
|
||||
import org.jetbrains.kotlin.utils.LibraryUtils
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
@@ -37,6 +38,8 @@ import java.io.IOException
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
|
||||
import java.io.File
|
||||
import java.util.HashSet
|
||||
|
||||
val ANNOTATIONS_PLUGIN_NAME = "org.jetbrains.kotlin.kapt"
|
||||
|
||||
@@ -134,16 +137,7 @@ public open class KotlinCompile() : AbstractKotlinCompile<K2JVMCompilerArguments
|
||||
args.pluginOptions = pluginOptions.toTypedArray()
|
||||
getLogger().kotlinDebug("args.pluginOptions = ${args.pluginOptions.joinToString(File.pathSeparator)}")
|
||||
|
||||
val embeddedAnnotations = getAnnotations(getProject(), getLogger())
|
||||
val userAnnotations = kotlinOptions.annotations?.split(File.pathSeparatorChar)?.toList() ?: emptyList()
|
||||
val allAnnotations = if (kotlinOptions.noJdkAnnotations) userAnnotations else userAnnotations.plus(embeddedAnnotations.map { it.getPath() })
|
||||
if (allAnnotations.isNotEmpty()) {
|
||||
args.annotations = allAnnotations.join(File.pathSeparator)
|
||||
getLogger().kotlinDebug("args.annotations = ${args.annotations}")
|
||||
}
|
||||
|
||||
args.noStdlib = true
|
||||
args.noJdkAnnotations = true
|
||||
args.noInline = kotlinOptions.noInline
|
||||
args.noOptimize = kotlinOptions.noOptimize
|
||||
args.noCallAssertions = kotlinOptions.noCallAssertions
|
||||
@@ -294,18 +288,6 @@ private fun <T: Any> ExtraPropertiesExtension.getOrNull(id: String): T? {
|
||||
}
|
||||
}
|
||||
|
||||
fun getAnnotations(project: Project, logger: Logger): Collection<File> {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val annotations = project.getExtensions().getByName(DEFAULT_ANNOTATIONS) as Collection<File>
|
||||
|
||||
if (!annotations.isEmpty()) {
|
||||
logger.info("using default annontations from [${annotations.map { it.getPath() }}]")
|
||||
return annotations
|
||||
} else {
|
||||
throw GradleException("Default annotations not found in Kotlin gradle plugin classpath")
|
||||
}
|
||||
}
|
||||
|
||||
class GradleMessageCollector(val logger: Logger) : MessageCollector {
|
||||
public override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
|
||||
val text = with(StringBuilder()) {
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.android.build.gradle.BaseExtension org.gradle.api.NamedDomainObjectContainer<com.android.build.gradle.api.AndroidSourceSet> getSourceSets()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllJava()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllSource()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getJava()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.ApkVariant com.android.builder.DefaultBuildType getBuildType()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.ApkVariant java.util.List<com.android.builder.DefaultProductFlavor> getProductFlavors()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.AidlCompile getAidlCompile()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.ProcessAndroidResources getProcessResources()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.RenderscriptCompile getRenderscriptCompile()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="com.android.build.gradle.api.LibraryVariant com.android.builder.DefaultBuildType getBuildType()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.io.Files java.io.File createTempDir()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.apache.commons.io.FilenameUtils java.lang.String getExtension(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.NamedDomainObjectCollection T getByName(java.lang.String)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Plugin void apply(T)">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun apply(p0 : T) : Unit"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.file.ConfigurableFileCollection files(java.lang.Object...)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.initialization.dsl.ScriptHandler getBuildscript()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getBuildscript() : ScriptHandler"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.logging.Logger getLogger()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.plugins.Convention getConvention()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='org.gradle.api.Project org.gradle.api.plugins.ExtensionContainer getExtensions()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name="org.gradle.api.Project org.gradle.api.plugins.PluginContainer getPlugins()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.artifacts.Configuration org.gradle.api.artifacts.ResolvedConfiguration getResolvedConfiguration()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.artifacts.ConfigurationContainer org.gradle.api.artifacts.Configuration detachedConfiguration(org.gradle.api.artifacts.Dependency...)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.Project org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection filter(org.gradle.api.specs.Spec<? super java.io.File>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.file.SourceDirectorySet java.util.Set<java.io.File> getSrcDirs()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.ConfigurationContainer getConfigurations()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getConfigurations() : ConfigurationContainer""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.Project getProject()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getProject() : Project"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.logging.Logger getLogger()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.internal.HasConvention org.gradle.api.plugins.Convention getConvention()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getConvention() : Convention"" />
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.internal.project.ProjectInternal org.gradle.api.internal.tasks.TaskContainerInternal getTasks()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.logging.Logging org.gradle.api.logging.Logger getLogger(java.lang.Class)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<item name="org.gradle.api.plugins.Convention T getPlugin(java.lang.Class<T>)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.Convention java.util.Map<java.lang.String,java.lang.Object> getPlugins()">
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getPlugins() : MutableMap<String, Any>"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.Convention org.gradle.api.internal.DynamicObject getExtensionsAsDynamicObject()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
<annotation name="jet.runtime.typeinfo.KotlinSignature">
|
||||
<val name="value" val=""fun getExtensionsAsDynamicObject() : DynamicObject"" />
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.ExtensionAware org.gradle.api.plugins.ExtensionContainer getExtensions()">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.PluginContainer T apply(java.lang.Class<T>)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name="org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin apply(java.lang.String)">
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.SourceTask org.gradle.api.file.FileTree getSource()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getSource() : FileTree""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.compile.AbstractCompile org.gradle.api.file.FileCollection getClasspath()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -72,11 +72,6 @@
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<version>${project.version}</version>
|
||||
<configuration>
|
||||
<annotationPaths>
|
||||
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
|
||||
</annotationPaths>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
@@ -107,9 +102,7 @@
|
||||
<postBuildHookScript>verify</postBuildHookScript> <!-- no extension required -->
|
||||
<extraArtifacts>
|
||||
<extraArtifact>org.jetbrains.kotlin:kotlin-gradle-plugin-core:${project.version}</extraArtifact>
|
||||
<extraArtifact>org.jetbrains.kotlin:kotlin-jdk-annotations:${project.version}</extraArtifact>
|
||||
<extraArtifact>org.jetbrains.kotlin:kotlin-js-library:${project.version}</extraArtifact>
|
||||
<extraArtifact>org.jetbrains.kotlin:kotlin-android-sdk-annotations:${project.version}</extraArtifact>
|
||||
</extraArtifacts>
|
||||
</configuration>
|
||||
<executions>
|
||||
|
||||
-10
@@ -36,8 +36,6 @@ import org.jetbrains.kotlin.gradle.internal.initKapt
|
||||
import java.net.URL
|
||||
import java.util.jar.Manifest
|
||||
|
||||
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
|
||||
|
||||
val KOTLIN_AFTER_JAVA_TASK_SUFFIX = "AfterJava"
|
||||
|
||||
abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
|
||||
@@ -239,9 +237,6 @@ abstract class AbstractKotlinPlugin @Inject constructor(val scriptHandler: Scrip
|
||||
project.getPlugins().apply(javaClass<JavaPlugin>())
|
||||
|
||||
configureSourceSetDefaults(project as ProjectInternal, javaBasePlugin, javaPluginConvention)
|
||||
|
||||
val gradleUtils = GradleUtils(scriptHandler, project)
|
||||
project.getExtensions().add(DEFAULT_ANNOTATIONS, gradleUtils.resolveKotlinPluginDependency("kotlin-jdk-annotations"))
|
||||
}
|
||||
|
||||
open protected fun configureSourceSetDefaults(project: ProjectInternal,
|
||||
@@ -332,9 +327,6 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand
|
||||
ext, plugin, aptConfigurations)
|
||||
}
|
||||
}
|
||||
|
||||
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils(scriptHandler, project)
|
||||
.resolveKotlinPluginDependency("kotlin-android-sdk-annotations"))
|
||||
}
|
||||
|
||||
private fun processVariantData(
|
||||
@@ -534,8 +526,6 @@ open class GradleUtils(val scriptHandler: ScriptHandler, val project: ProjectInt
|
||||
public fun kotlinPluginArtifactCoordinates(artifact: String): String = "org.jetbrains.kotlin:${artifact}:${kotlinPluginVersion()}"
|
||||
public fun kotlinJsLibraryCoordinates(): String = kotlinPluginArtifactCoordinates("kotlin-js-library")
|
||||
|
||||
public fun resolveKotlinPluginDependency(artifact: String): Collection<File> =
|
||||
resolveDependencies(kotlinPluginArtifactCoordinates(artifact))
|
||||
public fun resolveJsLibrary(): File = resolveDependencies(kotlinJsLibraryCoordinates()).first()
|
||||
}
|
||||
|
||||
|
||||
-4
@@ -21,10 +21,6 @@ android {
|
||||
compileSdkVersion 22
|
||||
buildToolsVersion "21.1.2"
|
||||
|
||||
kotlinOptions {
|
||||
annotations = "kotlinAnnotations"
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.kotlin.srcDirs += 'root/kotlin'
|
||||
}
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='android.app.Activity android.view.MenuInflater getMenuInflater()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
+1
-7
@@ -44,12 +44,6 @@ task show << {
|
||||
buildscript.configurations.classpath.each { println it }
|
||||
}
|
||||
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
}
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
+1
-6
@@ -39,11 +39,6 @@ test {
|
||||
useTestNG()
|
||||
}
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
}
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
+1
-7
@@ -28,12 +28,6 @@ task show << {
|
||||
buildscript.configurations.classpath.each { println it }
|
||||
}
|
||||
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
}
|
||||
|
||||
-6
@@ -39,12 +39,6 @@ task show << {
|
||||
buildscript.configurations.classpath.each { println it }
|
||||
}
|
||||
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun on(separator : String?) : Joiner""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun withKeyValueSeparator(keyValueSeparator : String?) : Joiner.MapJoiner?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun skipNulls() : Joiner""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
-6
@@ -34,12 +34,6 @@ task show << {
|
||||
buildscript.configurations.classpath.each { println it }
|
||||
}
|
||||
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun on(separator : String?) : Joiner""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun withKeyValueSeparator(keyValueSeparator : String?) : Joiner.MapJoiner?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun skipNulls() : Joiner""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
+1
-7
@@ -41,12 +41,6 @@ task show << {
|
||||
buildscript.configurations.classpath.each { println it }
|
||||
}
|
||||
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions.annotations = "externalAnnotations"
|
||||
}
|
||||
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion="1.4"
|
||||
}
|
||||
}
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
<root>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
|
||||
<annotation name="org.jetbrains.annotations.NotNull" />
|
||||
</item>
|
||||
</root>
|
||||
@@ -40,11 +40,6 @@
|
||||
<artifactId>kotlin-compiler</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-jdk-annotations</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.groovy</groupId>
|
||||
<artifactId>groovy-all</artifactId>
|
||||
|
||||
-134
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.maven;
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.sampullara.cli.Args;
|
||||
import kotlin.CollectionsKt;
|
||||
@@ -33,15 +32,8 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import static com.intellij.openapi.util.text.StringUtil.join;
|
||||
|
||||
@@ -52,15 +44,6 @@ import static com.intellij.openapi.util.text.StringUtil.join;
|
||||
*/
|
||||
@Mojo(name = "compile", defaultPhase = LifecyclePhase.COMPILE, requiresDependencyResolution = ResolutionScope.COMPILE)
|
||||
public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArguments> {
|
||||
/**
|
||||
* The directories used to scan for annotation.xml files for Kotlin annotations
|
||||
*/
|
||||
@Parameter
|
||||
public List<String> annotationPaths;
|
||||
|
||||
@Parameter(defaultValue = "true")
|
||||
public boolean scanForAnnotations;
|
||||
|
||||
/**
|
||||
* Project classpath.
|
||||
*/
|
||||
@@ -114,13 +97,6 @@ public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArgumen
|
||||
getLog().info("Classes directory is " + output);
|
||||
arguments.destination = output;
|
||||
|
||||
arguments.noJdkAnnotations = true;
|
||||
arguments.annotations = getFullAnnotationsPath(getLog(), annotationPaths);
|
||||
getLog().info("Using kotlin annotations from " + arguments.annotations);
|
||||
|
||||
arguments.moduleName = moduleName;
|
||||
getLog().info("Module name is " + moduleName);
|
||||
|
||||
try {
|
||||
Args.parse(arguments, ArrayUtil.toStringArray(args));
|
||||
}
|
||||
@@ -132,114 +108,4 @@ public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArgumen
|
||||
getLog().info("Optimization is turned off");
|
||||
}
|
||||
}
|
||||
|
||||
protected List<String> filterClassPath(List<String> classpath) {
|
||||
return CollectionsKt.filter(classpath, new Function1<String, Boolean>() {
|
||||
@Override
|
||||
public Boolean invoke(String s) {
|
||||
return new File(s).exists() || new File(project.getBasedir(), s).exists();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected String getFullAnnotationsPath(Log log, List<String> annotations) {
|
||||
String jdkAnnotation = getJdkAnnotations().getPath();
|
||||
|
||||
List<String> list = new ArrayList<String>();
|
||||
list.add(jdkAnnotation);
|
||||
|
||||
if (annotations != null) {
|
||||
for (String annotationPath : annotations) {
|
||||
if (new File(annotationPath).exists()) {
|
||||
list.add(annotationPath);
|
||||
} else {
|
||||
log.info("annotation path " + annotationPath + " does not exist");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (scanForAnnotations) {
|
||||
for (String path : scanAnnotations(log)) {
|
||||
if (!list.contains(path)) {
|
||||
list.add(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return join(list, File.pathSeparator);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static File getJdkAnnotations() {
|
||||
ClassLoader classLoader = KotlinCompileMojoBase.class.getClassLoader();
|
||||
if (!(classLoader instanceof URLClassLoader)) {
|
||||
throw new RuntimeException("Kotlin plugin`s class loader is not URLClassLoader");
|
||||
}
|
||||
|
||||
for (URL url : ((URLClassLoader) classLoader).getURLs()) {
|
||||
String path = url.getPath();
|
||||
if (StringUtil.isEmpty(path)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
File file = new File(path);
|
||||
if (file.getName().startsWith("kotlin-jdk-annotations")) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
|
||||
throw new RuntimeException("Could not get jdk annotations from Kotlin plugin`s classpath");
|
||||
}
|
||||
|
||||
private List<String> scanAnnotations(Log log) {
|
||||
List<String> annotations = new ArrayList<String>();
|
||||
|
||||
Set<Artifact> artifacts = project.getArtifacts();
|
||||
for (Artifact artifact : artifacts) {
|
||||
File file = artifact.getFile();
|
||||
if (file.isFile() && containsAnnotations(file, log)) {
|
||||
log.info("Discovered kotlin annotations in: " + file);
|
||||
try {
|
||||
annotations.add(file.getCanonicalPath());
|
||||
}
|
||||
catch (IOException e) {
|
||||
log.warn("Error extracting canonical path from: " + file, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return annotations;
|
||||
}
|
||||
|
||||
private static boolean containsAnnotations(File file, Log log) {
|
||||
log.debug("Scanning for kotlin annotations in " + file);
|
||||
|
||||
ZipFile zipFile = null;
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
Enumeration<? extends ZipEntry> entries = zipFile.entries();
|
||||
while (entries.hasMoreElements()) {
|
||||
String name = entries.nextElement().getName();
|
||||
if (name.endsWith("/annotations.xml")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException e) {
|
||||
log.warn("Error reading contents of jar: " + file, e);
|
||||
}
|
||||
finally {
|
||||
if (zipFile != null) {
|
||||
try {
|
||||
zipFile.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
log.warn("Error closing: " + zipFile, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user