diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-simple/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-simple/verify.bsh
index fcc28b94650..ecea41a643b 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-simple/verify.bsh
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-simple/verify.bsh
@@ -1,6 +1,4 @@
-import java.io.*;
+source(new File(basedir, "../../../verify-common.bsh").getAbsolutePath());
-File file = new File(basedir, "target/test-lombok-simple-1.0-SNAPSHOT.jar");
-if (!file.exists() || !file.isFile()) {
- throw new FileNotFoundException("Could not find generated JAR: " + file);
-}
+assertBuildLogHasLineThatContains("Applied plugin: 'kotlin-lombok'");
+assertFileExists("target/test-lombok-simple-1.0-SNAPSHOT.jar");
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/pom.xml
new file mode 100644
index 00000000000..748ff87adde
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/pom.xml
@@ -0,0 +1,156 @@
+
+
+ 4.0.0
+
+ org.jetbrains.kotlin
+ test-lombok-with-kapt
+ 1.0-SNAPSHOT
+
+
+ UTF-8
+ 1.8
+
+ 1.12.0
+ 1.18.20
+
+
+
+
+ mavenCentral
+ https://repo1.maven.org/maven2/
+
+
+
+
+ ${project.basedir}/src/main/java
+ ${project.basedir}/src/test/java
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ kotlin-lombok
+
+
+
+
+ kapt
+
+ kapt
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+ com.squareup.moshi
+ moshi-kotlin-codegen
+ ${moshi.version}
+
+
+
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+
+ test-compile
+ test-compile
+
+
+ ${project.basedir}/src/test/kotlin
+ ${project.basedir}/src/test/java
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-lombok
+ ${kotlin.version}
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+ 1.8
+ 1.8
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
+
+
+ default-compile
+ none
+
+
+
+ default-testCompile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+ java-test-compile
+ test-compile
+
+ testCompile
+
+
+
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+
+ com.squareup.moshi
+ moshi-kotlin
+ ${moshi.version}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/JavaUsage.java b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/JavaUsage.java
new file mode 100644
index 00000000000..30a281908a3
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/JavaUsage.java
@@ -0,0 +1,16 @@
+package lab2;
+
+public class JavaUsage {
+
+ public static void main(String[] args) {
+ SomePojo obj = new SomePojo();
+ obj.setAge(12);
+ boolean v = obj.isHuman();
+ obj.setHuman(!v);
+ System.out.println(obj);
+ }
+
+ public static void cycleUsage() {
+ new SomeKotlinClass().call();
+ }
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/ManualPojo.java b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/ManualPojo.java
new file mode 100644
index 00000000000..e619ddf9b63
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/ManualPojo.java
@@ -0,0 +1,21 @@
+package lab2;
+
+import org.jetbrains.annotations.Nullable;
+
+public class ManualPojo {
+
+ public String getFoo() {
+ return null;
+ }
+
+// @NotNull
+ public String getBar() {
+ return "234";
+ }
+
+ @Nullable
+ public Object someMethod() {
+ return null;
+ }
+
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomeData.java b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomeData.java
new file mode 100644
index 00000000000..c0cee2110cd
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomeData.java
@@ -0,0 +1,10 @@
+package lab2;
+
+import lombok.Data;
+
+@Data
+public class SomeData {
+ private String name;
+ private int age;
+ private boolean human;
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomePojo.java b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomePojo.java
new file mode 100644
index 00000000000..6cf4e7b1013
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/java/lab2/SomePojo.java
@@ -0,0 +1,17 @@
+package lab2;
+
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter @Setter @ToString
+public class SomePojo {
+
+ @NonNull
+ private String name;
+ private int age;
+
+ private boolean human;
+
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/KotlinUsage.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/KotlinUsage.kt
new file mode 100644
index 00000000000..337e9790813
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/KotlinUsage.kt
@@ -0,0 +1,29 @@
+package lab2
+
+fun main() {
+ println("something")
+ val obj = SomePojo()
+ obj.name = "test"
+ val s: String = obj.name
+ obj.age = 12
+ val v = obj.isHuman
+ obj.isHuman = !v
+ println(obj)
+//
+// val manualPojo = ManualPojo()
+//
+// val foo: String? = manualPojo.getFoo()
+// val res: Any? = manualPojo.someMethod()
+//
+ val ddd = SomeData()
+
+ JavaUsage.cycleUsage()
+}
+
+class SomeKotlinClass {
+ fun call() {
+ val ddd = SomeData()
+ ddd.age = 12
+ println(ddd)
+ }
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/test.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/test.kt
new file mode 100644
index 00000000000..993c84e10ca
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/src/main/kotlin/lab2/test.kt
@@ -0,0 +1,24 @@
+package lab2
+
+import com.squareup.moshi.JsonClass
+import com.squareup.moshi.Moshi
+
+@JsonClass(generateAdapter = true)
+data class SomeObj(
+ val hidden: Boolean,
+ val names: List
+)
+
+fun main() {
+
+ val json = """
+ {
+ "hidden": true,
+ "names": ["a", "b"]
+ }
+ """.trimIndent()
+
+ val moshi: Moshi = Moshi.Builder().build()
+ val adapter = moshi.adapter(SomeObj::class.java)
+ println(adapter.fromJson(json))
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/verify.bsh
new file mode 100644
index 00000000000..d3d44bcd7d8
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-lombok-with-kapt/verify.bsh
@@ -0,0 +1,7 @@
+source(new File(basedir, "../../../verify-common.bsh").getAbsolutePath());
+
+assertBuildLogHasLineThatContains("Applied plugin: 'kotlin-lombok'");
+assertFileExists("target/test-lombok-with-kapt-1.0-SNAPSHOT.jar");
+assertFileExists("target/kaptStubs/compile/lab2/SomeObj.java");
+assertFileExists("target/generated-sources/kapt/compile/lab2/SomeObjJsonAdapter.kt");
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/verify-common.bsh b/libraries/tools/kotlin-maven-plugin-test/verify-common.bsh
index ceb10449d21..9ce3f19bc8c 100644
--- a/libraries/tools/kotlin-maven-plugin-test/verify-common.bsh
+++ b/libraries/tools/kotlin-maven-plugin-test/verify-common.bsh
@@ -66,4 +66,11 @@ int findLineThatContains(String[] lines, String content) {
}
}
return -1;
-}
\ No newline at end of file
+}
+
+void assertFileExists(String relativePath) {
+ File file = new File(basedir, relativePath);
+ if (!file.exists() || !file.isFile()) {
+ throw new Exception("Expected file not found: " + relativePath);
+ }
+}
diff --git a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt
index 4551ca4712e..8a0351d4620 100644
--- a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt
+++ b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt
@@ -64,7 +64,13 @@ class LombokCommandLineProcessor : CommandLineProcessor {
override fun processOption(option: AbstractCliOption, value: String, configuration: CompilerConfiguration) {
when (option) {
- CONFIG_FILE_OPTION -> configuration.put(CONFIG_FILE, File(value))
+ CONFIG_FILE_OPTION -> {
+ val file = File(value)
+ if (!file.exists()) {
+ throw IllegalArgumentException("Config file not found ${file.absolutePath}")
+ }
+ configuration.put(CONFIG_FILE, file)
+ }
else -> throw IllegalArgumentException("Unknown option $option")
}
}