diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/expected.log b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/expected.log
index 9f24154b2ca..9df2352dfd5 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/expected.log
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/expected.log
@@ -1,15 +1,17 @@
[INFO] Kotlin Compiler version @snapshot@
[INFO] Compiling Kotlin sources from [/test-extension/src/main/kotlin]
[INFO] Module name is test-extension
+[WARNING] Some JAR files in the classpath have the Kotlin Runtime library bundled into them. This may cause difficult to debug problems if there's a different version @snapshot@ the Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath or use '-Xskip-runtime-version-check' to suppress this warning
+[WARNING] /local-repo/org/jetbrains/kotlin/kotlin-compiler/1.1-SNAPSHOT/kotlin-compiler-1.1-SNAPSHOT.jar: (-1, -1) Library has Kotlin runtime bundled into it
[INFO] Kotlin Compiler version @snapshot@
[WARNING] No sources found skipping Kotlin compile
[INFO] Kotlin Compiler version @snapshot@
[INFO] Compiling Kotlin sources from [/use-test-extension/src/main/kotlin]
[INFO] Module name is use-test-extension
[INFO] Applicability test for project use-test-extension
+[INFO] Applied plugin: 'test-me'
[INFO] Configuring test plugin with arguments
-[INFO] Options for plugin test-me: [plugin:org.jetbrains.kotlin.test.test-plugin:test-option=my-special-value]
[INFO] Plugin applied
[INFO] Option value: my-special-value
[INFO] Kotlin Compiler version @snapshot@
-[WARNING] No sources found skipping Kotlin compile
+[WARNING] No sources found skipping Kotlin compile
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/pom.xml
index 4ac87a3899b..4b108ab5719 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/pom.xml
@@ -6,7 +6,7 @@
org.jetbrains.kotlin
kotlin-compiler-extensions-test
- 1.1-SNAPSHOT
+ 1.0-SNAPSHOT
test-extension
use-test-extension
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/pom.xml
index 5664b741ced..8f564844199 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/pom.xml
@@ -5,16 +5,12 @@
kotlin-compiler-extensions-test
org.jetbrains.kotlin
- 1.1-SNAPSHOT
+ 1.0-SNAPSHOT
4.0.0
test-extension
-
- 1.1-SNAPSHOT
-
-
org.jetbrains.kotlin
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/src/main/kotlin/org/jetbrains/kotlin/test/MavenPluginComponent.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/src/main/kotlin/org/jetbrains/kotlin/test/MavenPluginComponent.kt
index 522068ffbd1..9a993b96c99 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/src/main/kotlin/org/jetbrains/kotlin/test/MavenPluginComponent.kt
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/test-extension/src/main/kotlin/org/jetbrains/kotlin/test/MavenPluginComponent.kt
@@ -23,6 +23,7 @@ class MavenPluginComponent : KotlinMavenPluginExtension {
logger.info("Configuring test plugin with arguments")
return listOf(PluginOption(
+ "test-me",
TestCommandLineProcessor.TestPluginId,
TestCommandLineProcessor.MyTestOption.name,
"my-special-value"))
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/use-test-extension/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/use-test-extension/pom.xml
index 58c44c1ed71..dba7c5ac342 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/use-test-extension/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-plugins/use-test-extension/pom.xml
@@ -5,17 +5,12 @@
kotlin-compiler-extensions-test
org.jetbrains.kotlin
- 1.1-SNAPSHOT
+ 1.0-SNAPSHOT
4.0.0
use-test-extension
-
-
- 1.1-SNAPSHOT
-
-
org.jetbrains.kotlin
diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
index cf62e5d2907..31b2b41de1f 100644
--- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
+++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
@@ -328,10 +328,13 @@ public abstract class KotlinCompileMojoBase e
String pluginName = pluginEntry.getKey();
KotlinMavenPluginExtension plugin = pluginEntry.getValue();
+ // applied plugin (...) to info()
if (plugin.isApplicable(project, mojoExecution)) {
+ getLog().info("Applied plugin: '" + pluginName + "'");
List optionsForPlugin = plugin.getPluginOptions(project, mojoExecution);
- getLog().info("Options for plugin " + pluginName + ": " + optionsForPlugin);
- pluginOptions.addAll(optionsForPlugin);
+ if (!optionsForPlugin.isEmpty()) {
+ pluginOptions.addAll(optionsForPlugin);
+ }
}
}
@@ -339,6 +342,34 @@ public abstract class KotlinCompileMojoBase e
pluginOptions.addAll(parseUserProvidedPluginOptions(this.pluginOptions, plugins));
}
+ Map> optionsByPluginName = new LinkedHashMap>();
+ for (PluginOption option : pluginOptions) {
+ List optionsForPlugin = optionsByPluginName.get(option.pluginName);
+ if (optionsForPlugin == null) {
+ optionsForPlugin = new ArrayList();
+ optionsByPluginName.put(option.pluginName, optionsForPlugin);
+ }
+
+ optionsForPlugin.add(option);
+ }
+
+ for (Map.Entry> entry : optionsByPluginName.entrySet()) {
+ assert !entry.getValue().isEmpty();
+
+ String pluginName = entry.getValue().get(0).pluginName;
+
+ StringBuilder renderedOptions = new StringBuilder("[");
+ for (PluginOption option : entry.getValue()) {
+ if (renderedOptions.length() > 1) {
+ renderedOptions.append(", ");
+ }
+ renderedOptions.append(option.key).append(": ").append(option.value);
+ }
+ renderedOptions.append("]");
+
+ getLog().debug("Options for plugin " + pluginName + ": " + renderedOptions);
+ }
+
return pluginOptions;
}
@@ -363,7 +394,7 @@ public abstract class KotlinCompileMojoBase e
throw new PluginNotFoundException(pluginName);
}
- pluginOptions.add(new PluginOption(plugin.getCompilerPluginId(), key, value));
+ pluginOptions.add(new PluginOption(pluginName, plugin.getCompilerPluginId(), key, value));
}
return pluginOptions;
diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/PluginOption.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/PluginOption.java
index 7f7674decdc..867cdee05f8 100644
--- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/PluginOption.java
+++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/PluginOption.java
@@ -1,11 +1,17 @@
package org.jetbrains.kotlin.maven;
public class PluginOption {
+ /** The plugin name in Maven, e.g. "all-open" */
+ public final String pluginName;
+
+ /** The compiler plugin identifier, e.g. "org.jetbrains.kotlin.allopen" */
public final String pluginId;
+
public final String key;
public final String value;
- public PluginOption(String pluginId, String key, String value) {
+ public PluginOption(String pluginName, String pluginId, String key, String value) {
+ this.pluginName = pluginName;
this.pluginId = pluginId;
this.key = key;
this.value = value;