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 47aea69eb03..5ae03c7434e 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
@@ -10,8 +10,10 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.ArrayUtil;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
@@ -52,6 +54,9 @@ public abstract class KotlinCompileMojoBase e
@Component
protected RepositorySystem system;
+ @Parameter(defaultValue = "${session}", readonly = true, required = true)
+ protected MavenSession session;
+
/**
* The source directories containing the sources to be compiled.
*/
@@ -282,9 +287,17 @@ public abstract class KotlinCompileMojoBase e
List files = new ArrayList<>();
+ ArtifactRepository localRepo = session == null ? null : session.getLocalRepository();
+ List remoteRepos = session == null ? null : session.getRequest().getRemoteRepositories();
for (Dependency dependency : mojoExecution.getPlugin().getDependencies()) {
Artifact artifact = system.createDependencyArtifact(dependency);
- ArtifactResolutionResult resolved = system.resolve(new ArtifactResolutionRequest().setArtifact(artifact));
+
+ ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact(artifact);
+ if (localRepo != null) request.setLocalRepository(localRepo);
+ if (remoteRepos != null) request.setRemoteRepositories(remoteRepos);
+ if (localRepo != null || remoteRepos != null) request.setResolveTransitively(true);
+
+ ArtifactResolutionResult resolved = system.resolve(request);
for (Artifact resolvedArtifact : resolved.getArtifacts()) {
File file = resolvedArtifact.getFile();
diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java
index 6cfdf53eec1..7fcbe566dea 100644
--- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java
+++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/kapt/KaptJVMCompilerMojo.java
@@ -74,9 +74,6 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo {
@Component
private ArtifactHandlerManager artifactHandlerManager;
- @Parameter(defaultValue = "${session}", readonly = true, required = true)
- private MavenSession session;
-
@Component
private ResolutionErrorHandler resolutionErrorHandler;