diff --git a/libraries/tools/kotlin-maven-plugin-test/pom.xml b/libraries/tools/kotlin-maven-plugin-test/pom.xml
index ebbf1fbbff8..012f471dbec 100644
--- a/libraries/tools/kotlin-maven-plugin-test/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/pom.xml
@@ -93,6 +93,10 @@
kotlin.version
${project.version}
+
+ maven.repo.local
+ ${maven.repo.local}
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java
index 00b5c629dbf..9fb55d6b5fe 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java
+++ b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java
@@ -1,10 +1,9 @@
package org.jetbrains.kotlin.maven;
import org.junit.Test;
-
import java.io.File;
-public class IncrementalCompilationIT {
+public class IncrementalCompilationIT extends MavenITBase {
@Test
public void testSimpleCompile() throws Exception {
MavenProject project = new MavenProject("kotlinSimple");
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenITBase.java b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenITBase.java
new file mode 100644
index 00000000000..ad91ea5f1db
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenITBase.java
@@ -0,0 +1,15 @@
+package org.jetbrains.kotlin.maven;
+
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+
+public abstract class MavenITBase {
+ @Rule
+ public TestRule watcher = new TestWatcher() {
+ protected void starting(Description description) {
+ System.out.println("Running test: " + description.getDisplayName());
+ }
+ };
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenProject.java b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenProject.java
index 90dd81d5770..23fb77be21a 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenProject.java
+++ b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenProject.java
@@ -2,7 +2,9 @@ package org.jetbrains.kotlin.maven;
import com.intellij.openapi.util.io.FileUtil;
import kotlin.io.TextStreamsKt;
+import kotlin.text.StringsKt;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.io.*;
import java.util.*;
@@ -66,8 +68,19 @@ class MavenProject {
cmd.add("mvn");
cmd.add("-Dkotlin.compiler.incremental.log.level=info");
- String kotlinVersion = getNotNullSystemProperty("kotlin.version");
- cmd.add("-Dkotlin.version=" + kotlinVersion);
+ String kotlinVersionProperty = "kotlin.version";
+ cmd.add("-D" + kotlinVersionProperty + "=" + getNotNullSystemProperty(kotlinVersionProperty));
+
+ String mavenRepoLocalProperty = "maven.repo.local";
+ String localRepoPath = System.getProperty(mavenRepoLocalProperty);
+ try {
+ if (localRepoPath != null && !StringsKt.isBlank(localRepoPath) && new File(localRepoPath).isDirectory()) {
+ cmd.add("-D" + mavenRepoLocalProperty + "=" + localRepoPath);
+ }
+ }
+ catch (SecurityException e) {
+ e.printStackTrace();
+ }
cmd.addAll(Arrays.asList(args));