Fix kotlin-gradle-plugin to correctly process java source files

Do not remove outdirectory from cp in maven: this is needed for gradle-plugin build to see files compiled by gmaven
    this may cause problems with running mvn install without clean for kotlin
Remove special magic with groovy-output in gradle-plugin pom.xml
This commit is contained in:
Pavel V. Talanov
2015-04-08 17:12:45 +03:00
parent 3329136c9c
commit a21abeba33
4 changed files with 4 additions and 15 deletions
@@ -78,9 +78,6 @@
<resource> <resource>
<directory>${project.basedir}/src/main/resources</directory> <directory>${project.basedir}/src/main/resources</directory>
</resource> </resource>
<resource>
<directory>${project.build.outputDirectory}/../groovyOutput</directory>
</resource>
</resources> </resources>
<plugins> <plugins>
@@ -57,8 +57,8 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments>() : AbstractCo
return return
} }
populateTargetSpecificArgs(args)
populateCommonArgs(args, sources) populateCommonArgs(args, sources)
populateTargetSpecificArgs(args)
callCompiler(args) callCompiler(args)
afterCompileHook(args) afterCompileHook(args)
} }
@@ -104,11 +104,11 @@ public open class KotlinCompile() : AbstractKotlinCompile<K2JVMCompilerArguments
val extraProperties = getExtensions().getExtraProperties() val extraProperties = getExtensions().getExtraProperties()
args.pluginClasspaths = extraProperties.get("compilerPluginClasspaths") as? Array<String> args.pluginClasspaths = extraProperties.get("compilerPluginClasspaths") as? Array<String>
args.pluginOptions = extraProperties.get("compilerPluginArguments") as? Array<String> args.pluginOptions = extraProperties.get("compilerPluginArguments") as? Array<String>
// show kotlin compiler where to look for java source files
args.freeArgs = (args.freeArgs + getJavaSourceRoots().map { it.getAbsolutePath() }).toSet().toList()
if (StringUtils.isEmpty(kotlinOptions.classpath)) { if (StringUtils.isEmpty(kotlinOptions.classpath)) {
val existingClasspathEntries = getClasspath().filter({ it != null && it.exists() }) args.classpath = getClasspath().filter({ it != null && it.exists() }).joinToString(File.pathSeparator)
val effectiveClassPath = (getJavaSourceRoots() + existingClasspathEntries).makeString(File.pathSeparator)
args.classpath = effectiveClassPath
} }
args.destination = if (StringUtils.isEmpty(kotlinOptions.destination)) { args.destination = if (StringUtils.isEmpty(kotlinOptions.destination)) {
@@ -72,9 +72,6 @@
<directory>${project.basedir}/src/main/resources</directory> <directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering> <filtering>true</filtering>
</resource> </resource>
<resource>
<directory>${project.build.outputDirectory}/../groovyOutput</directory>
</resource>
</resources> </resources>
<plugins> <plugins>
@@ -96,7 +93,6 @@
<configuration> <configuration>
<sourceDirs> <sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.build.outputDirectory}/../groovyOutput</sourceDir>
</sourceDirs> </sourceDirs>
</configuration> </configuration>
</execution> </execution>
@@ -166,7 +162,6 @@
</includes> </includes>
</fileset> </fileset>
</sources> </sources>
<outputDirectory>${project.build.outputDirectory}/../groovyOutput</outputDirectory>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>
@@ -104,9 +104,6 @@ public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArgumen
} }
ArrayList<String> classpathList = new ArrayList<String>(classpath); ArrayList<String> classpathList = new ArrayList<String>(classpath);
if (classpathList.remove(output)) {
LOG.debug("Removed target directory from compiler classpath (" + output + ")");
}
if (!classpathList.isEmpty()) { if (!classpathList.isEmpty()) {
String classPathString = join(classpathList, File.pathSeparator); String classPathString = join(classpathList, File.pathSeparator);