Shade in kotlin-android-extensions

This commit is contained in:
Alexey Tsvetkov
2016-05-27 16:24:15 +03:00
parent 23353facca
commit 5fead88ced
3 changed files with 80 additions and 47 deletions
+3
View File
@@ -157,3 +157,6 @@ messages/**)
*** SKIP_DEBUG;
*** SKIP_FRAMES;
}
# for kotlin-android-extensions in maven
-keep class com.intellij.openapi.module.ModuleServiceManager { public *; }
@@ -7,6 +7,9 @@
<properties>
<maven-plugin-anno.version>1.4.1</maven-plugin-anno.version>
<maven.version>3.0.4</maven.version>
<android-extensions.src>${basedir}/../../../plugins/android-extensions/android-extensions-compiler/src</android-extensions.src>
<android-extensions.target-src>${basedir}/target/src</android-extensions.target-src>
<android-extensions.target-resource>${basedir}/target/resource</android-extensions.target-resource>
</properties>
<parent>
@@ -21,8 +24,79 @@
<description>Android compiler plugin for Kotlin</description>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-compiler-embeddable</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>${android-extensions.target-src}</sourceDirectory>
<resources>
<resource>
<directory>${android-extensions.target-resource}</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-sources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${android-extensions.target-src}</outputDirectory>
<resources>
<resource><directory>${android-extensions.src}</directory></resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${android-extensions.target-resource}/META-INF</outputDirectory>
<resources>
<resource><directory>${android-extensions.src}/META-INF</directory></resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>${android-extensions.target-src}/**</include>
</includes>
<replacements>
<replacement>
<token>com\.intellij</token>
<value>org.jetbrains.kotlin.com.intellij</value>
</replacement>
</replacements>
</configuration>
</plugin>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
@@ -35,56 +109,12 @@
<goals> <goal>compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${android-extensions.target-src}</sourceDir>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals> <goal>test-compile</goal> </goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>prepare</id>
<phase>compile</phase>
<configuration>
<tasks>
<unzip src="${kotlin-sdk}/lib/android-extensions-compiler.jar" dest="target/classes/" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>sources-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>sources</classifier>
<classesDirectory>${basedir}/../../../plugins/android-extensions/android-extensions-compiler/src</classesDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
@@ -130,7 +130,7 @@ class CompilerServicesCleanup(private var pluginClassLoader: ClassLoader?) {
}
private fun stopZipFileCache() {
callVoidStaticMethod("com.intellij.openapi.util.io.ZipFileCache", "stopBackgroundThread")
callVoidStaticMethod("org.jetbrains.kotlin.com.intellij.openapi.util.io.ZipFileCache", "stopBackgroundThread")
log.kotlinDebug("ZipFileCache finished successfully")
}
@@ -149,7 +149,7 @@ class CompilerServicesCleanup(private var pluginClassLoader: ClassLoader?) {
private fun cleanJarCache() {
log.kotlinDebug("Clean JAR cache")
callVoidStaticMethod("com.intellij.openapi.vfs.impl.ZipHandler", "clearFileAccessorCache")
callVoidStaticMethod("org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.ZipHandler", "clearFileAccessorCache")
log.kotlinDebug("JAR cache cleared")
}
}