From d06f31a43155cfcce55a6b773df2d1225be97e28 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Mon, 25 Nov 2013 21:59:30 +0400 Subject: [PATCH] IDEA-116921 Run configuration can't resolve test dependency when "Resolve workspace artifacts" ticked on. --- .../idea/maven/artifactResolver/common/MavenModuleMap.java | 4 ++++ .../idea/maven/artifactResolver/MyWorkspaceReader.java | 7 ++++++- .../maven/artifactResolver/IntelliJWorkspaceReaderM31.java | 7 ++++++- .../idea/maven/execution/MavenExternalParameters.java | 6 ++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/plugins/maven/artifact-resolver-m2/src/org/jetbrains/idea/maven/artifactResolver/common/MavenModuleMap.java b/plugins/maven/artifact-resolver-m2/src/org/jetbrains/idea/maven/artifactResolver/common/MavenModuleMap.java index f9246328b8c1..bf3fff93b063 100644 --- a/plugins/maven/artifact-resolver-m2/src/org/jetbrains/idea/maven/artifactResolver/common/MavenModuleMap.java +++ b/plugins/maven/artifact-resolver-m2/src/org/jetbrains/idea/maven/artifactResolver/common/MavenModuleMap.java @@ -56,6 +56,10 @@ public class MavenModuleMap { public boolean resolveToModule(Artifact artifact) { String extension = artifact.getArtifactHandler().getExtension(); + if ("jar".equals(extension) && "test-jar".equals(artifact.getType())) { + extension = "test-jar"; + } + File file = findArtifact(artifact.getGroupId(), artifact.getArtifactId(), extension, artifact.getBaseVersion()); if(file == null) { diff --git a/plugins/maven/artifact-resolver-m3/src/org/jetbrains/idea/maven/artifactResolver/MyWorkspaceReader.java b/plugins/maven/artifact-resolver-m3/src/org/jetbrains/idea/maven/artifactResolver/MyWorkspaceReader.java index d67fcc9f0a12..612d24bb8b7d 100644 --- a/plugins/maven/artifact-resolver-m3/src/org/jetbrains/idea/maven/artifactResolver/MyWorkspaceReader.java +++ b/plugins/maven/artifact-resolver-m3/src/org/jetbrains/idea/maven/artifactResolver/MyWorkspaceReader.java @@ -52,7 +52,12 @@ public class MyWorkspaceReader implements WorkspaceReader { } public File findArtifact(Artifact artifact) { - return MavenModuleMap.getInstance().findArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getExtension(), + String type = artifact.getExtension(); + if ("jar".equals(type) && "tests".equals(artifact.getClassifier())) { + type = "test-jar"; + } + + return MavenModuleMap.getInstance().findArtifact(artifact.getGroupId(), artifact.getArtifactId(), type, artifact.getBaseVersion()); } diff --git a/plugins/maven/artifact-resolver-m31/src/org/jetbrains/idea/maven/artifactResolver/IntelliJWorkspaceReaderM31.java b/plugins/maven/artifact-resolver-m31/src/org/jetbrains/idea/maven/artifactResolver/IntelliJWorkspaceReaderM31.java index 5f5386ca3a1f..3041e8350a20 100644 --- a/plugins/maven/artifact-resolver-m31/src/org/jetbrains/idea/maven/artifactResolver/IntelliJWorkspaceReaderM31.java +++ b/plugins/maven/artifact-resolver-m31/src/org/jetbrains/idea/maven/artifactResolver/IntelliJWorkspaceReaderM31.java @@ -52,7 +52,12 @@ public class IntelliJWorkspaceReaderM31 implements WorkspaceReader { } public File findArtifact(Artifact artifact) { - return MavenModuleMap.getInstance().findArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getExtension(), + String type = artifact.getExtension(); + if ("jar".equals(type) && "tests".equals(artifact.getClassifier())) { + type = "test-jar"; + } + + return MavenModuleMap.getInstance().findArtifact(artifact.getGroupId(), artifact.getArtifactId(), type, artifact.getBaseVersion()); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenExternalParameters.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenExternalParameters.java index d5f11ad62408..181537bd3e56 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenExternalParameters.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenExternalParameters.java @@ -260,6 +260,12 @@ public class MavenExternalParameters { + ':' + mavenProject.getMavenId().getVersion(), mavenProject.getFile().getPath()); + res.setProperty(mavenProject.getMavenId().getGroupId() + + ':' + mavenProject.getMavenId().getArtifactId() + + ":test-jar" + + ':' + mavenProject.getMavenId().getVersion(), + mavenProject.getTestOutputDirectory()); + res.setProperty(mavenProject.getMavenId().getGroupId() + ':' + mavenProject.getMavenId().getArtifactId() + ':' + mavenProject.getPackaging()