Resolve also transitive dependencies for compilerPluginClasspath in maven
This allows to depend on actual compiler plugin instead of embedding it into maven compiler plugin. ^KT-52811 In Progress
This commit is contained in:
committed by
Space Team
parent
e1bd7d7b5d
commit
8ad67faa60
+14
-1
@@ -10,8 +10,10 @@ import com.intellij.openapi.diagnostic.Logger;
|
|||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.util.ArrayUtil;
|
import com.intellij.util.ArrayUtil;
|
||||||
import org.apache.maven.artifact.Artifact;
|
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.ArtifactResolutionRequest;
|
||||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||||
|
import org.apache.maven.execution.MavenSession;
|
||||||
import org.apache.maven.model.Dependency;
|
import org.apache.maven.model.Dependency;
|
||||||
import org.apache.maven.model.Plugin;
|
import org.apache.maven.model.Plugin;
|
||||||
import org.apache.maven.model.PluginExecution;
|
import org.apache.maven.model.PluginExecution;
|
||||||
@@ -52,6 +54,9 @@ public abstract class KotlinCompileMojoBase<A extends CommonCompilerArguments> e
|
|||||||
@Component
|
@Component
|
||||||
protected RepositorySystem system;
|
protected RepositorySystem system;
|
||||||
|
|
||||||
|
@Parameter(defaultValue = "${session}", readonly = true, required = true)
|
||||||
|
protected MavenSession session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The source directories containing the sources to be compiled.
|
* The source directories containing the sources to be compiled.
|
||||||
*/
|
*/
|
||||||
@@ -282,9 +287,17 @@ public abstract class KotlinCompileMojoBase<A extends CommonCompilerArguments> e
|
|||||||
|
|
||||||
List<File> files = new ArrayList<>();
|
List<File> files = new ArrayList<>();
|
||||||
|
|
||||||
|
ArtifactRepository localRepo = session == null ? null : session.getLocalRepository();
|
||||||
|
List<ArtifactRepository> remoteRepos = session == null ? null : session.getRequest().getRemoteRepositories();
|
||||||
for (Dependency dependency : mojoExecution.getPlugin().getDependencies()) {
|
for (Dependency dependency : mojoExecution.getPlugin().getDependencies()) {
|
||||||
Artifact artifact = system.createDependencyArtifact(dependency);
|
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()) {
|
for (Artifact resolvedArtifact : resolved.getArtifacts()) {
|
||||||
File file = resolvedArtifact.getFile();
|
File file = resolvedArtifact.getFile();
|
||||||
|
|||||||
-3
@@ -74,9 +74,6 @@ public class KaptJVMCompilerMojo extends K2JVMCompileMojo {
|
|||||||
@Component
|
@Component
|
||||||
private ArtifactHandlerManager artifactHandlerManager;
|
private ArtifactHandlerManager artifactHandlerManager;
|
||||||
|
|
||||||
@Parameter(defaultValue = "${session}", readonly = true, required = true)
|
|
||||||
private MavenSession session;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
private ResolutionErrorHandler resolutionErrorHandler;
|
private ResolutionErrorHandler resolutionErrorHandler;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user