mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-156528 [GRADLE] "testCompile" dependency does not include all dependencies in "compile" configuration
This commit is contained in:
+1
@@ -215,6 +215,7 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
|
||||
}
|
||||
}
|
||||
}
|
||||
artifacts.addAll(sourceSet.getArtifacts());
|
||||
sourceSetData.setArtifacts(ContainerUtil.newArrayList(artifacts));
|
||||
|
||||
DataNode<GradleSourceSetData> sourceSetDataNode = mainModuleNode.createChild(GradleSourceSetData.KEY, sourceSetData);
|
||||
|
||||
+43
-1
@@ -532,7 +532,49 @@ public class GradleDependenciesImportingTest extends GradleImportingTestCase {
|
||||
assertModules("project", "project1", "project1_main", "project1_test", "project2", "project2_main", "project2_test");
|
||||
|
||||
assertModuleModuleDeps("project2_main");
|
||||
assertModuleModuleDeps("project2_test", "project1_test", "project2_main");
|
||||
assertModuleModuleDeps("project2_test", "project2_main", "project1_test");
|
||||
|
||||
importProjectUsingSingeModulePerGradleProject();
|
||||
assertModules("project", "project1", "project2");
|
||||
assertModuleModuleDeps("project2", "project1");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TargetVersions("2.0+")
|
||||
public void testTestModuleDependencyAsArtifactFromTestSourceSetOutput2() throws Exception {
|
||||
createSettingsFile("include 'project1'\n" +
|
||||
"include 'project2'\n");
|
||||
|
||||
importProject(
|
||||
"project(':project1') {\n" +
|
||||
" apply plugin: 'java'\n" +
|
||||
" configurations {\n" +
|
||||
" testArtifacts\n" +
|
||||
" }\n" +
|
||||
"\n" +
|
||||
" task testJar(type: Jar) {\n" +
|
||||
" classifier = 'tests'\n" +
|
||||
" from sourceSets.test.output\n" +
|
||||
" }\n" +
|
||||
"\n" +
|
||||
" artifacts {\n" +
|
||||
" testArtifacts testJar\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"\n" +
|
||||
"project(':project2') {\n" +
|
||||
" apply plugin: 'java'\n" +
|
||||
" dependencies {\n" +
|
||||
" compile project(path: ':project1')\n" +
|
||||
" testCompile project(path: ':project1', configuration: 'testArtifacts')\n" +
|
||||
" }\n" +
|
||||
"}\n"
|
||||
);
|
||||
|
||||
assertModules("project", "project1", "project1_main", "project1_test", "project2", "project2_main", "project2_test");
|
||||
|
||||
assertModuleModuleDeps("project2_main", "project1_main");
|
||||
assertModuleModuleDeps("project2_test", "project2_main", "project1_main", "project1_test");
|
||||
|
||||
importProjectUsingSingeModulePerGradleProject();
|
||||
assertModules("project", "project1", "project2");
|
||||
|
||||
+3
@@ -19,6 +19,7 @@ import com.intellij.openapi.externalSystem.model.project.IExternalSystemSourceTy
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
@@ -28,6 +29,8 @@ import java.util.Map;
|
||||
* @since 7/14/2014
|
||||
*/
|
||||
public interface ExternalSourceSet extends Serializable {
|
||||
Collection<File> getArtifacts();
|
||||
|
||||
@NotNull
|
||||
String getName();
|
||||
|
||||
|
||||
+12
@@ -20,6 +20,7 @@ import com.intellij.openapi.externalSystem.model.project.IExternalSystemSourceTy
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -32,6 +33,7 @@ public class DefaultExternalSourceSet implements ExternalSourceSet {
|
||||
private String myName;
|
||||
private Map<IExternalSystemSourceType, ExternalSourceDirectorySet> mySources;
|
||||
private Collection<ExternalDependency> myDependencies;
|
||||
private Collection<File> myArtifacts;
|
||||
private String mySourceCompatibility;
|
||||
private String myTargetCompatibility;
|
||||
|
||||
@@ -52,6 +54,7 @@ public class DefaultExternalSourceSet implements ExternalSourceSet {
|
||||
for (ExternalDependency dependency : sourceSet.getDependencies()) {
|
||||
myDependencies.add(ModelFactory.createCopy(dependency));
|
||||
}
|
||||
myArtifacts = sourceSet.getArtifacts() == null ? new ArrayList<File>() : new ArrayList<File>(sourceSet.getArtifacts());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -60,6 +63,15 @@ public class DefaultExternalSourceSet implements ExternalSourceSet {
|
||||
return myName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<File> getArtifacts() {
|
||||
return myArtifacts;
|
||||
}
|
||||
|
||||
public void setArtifacts(Collection<File> artifacts) {
|
||||
myArtifacts = artifacts;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getSourceCompatibility() {
|
||||
|
||||
+6
@@ -26,6 +26,7 @@ import org.gradle.api.file.ContentFilterable
|
||||
import org.gradle.api.file.FileCopyDetails
|
||||
import org.gradle.api.tasks.SourceSet
|
||||
import org.gradle.api.tasks.SourceSetContainer
|
||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||
import org.gradle.api.tasks.bundling.Jar
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
import org.gradle.api.tasks.util.PatternFilterable
|
||||
@@ -226,6 +227,11 @@ class ExternalProjectBuilderImpl implements ModelBuilderService {
|
||||
externalSourceSet.targetCompatibility = projectTargetCompatibility
|
||||
}
|
||||
|
||||
def jarTask = project.tasks.findByName(sourceSet.jarTaskName)
|
||||
if(jarTask instanceof AbstractArchiveTask) {
|
||||
externalSourceSet.artifacts = [jarTask.archivePath]
|
||||
}
|
||||
|
||||
def sources = [:] as Map<ExternalSystemSourceType, ExternalSourceDirectorySet>
|
||||
ExternalSourceDirectorySet resourcesDirectorySet = new DefaultExternalSourceDirectorySet()
|
||||
resourcesDirectorySet.name = sourceSet.resources.name
|
||||
|
||||
+12
-2
@@ -790,8 +790,13 @@ class DependencyResolverImpl implements DependencyResolver {
|
||||
projectPath: componentSelector.projectPath,
|
||||
configurationName: it.projectConfiguration.name
|
||||
)
|
||||
dependency.projectDependencyArtifacts = artifactMap.get(componentResult.moduleVersion).collect { it.file }
|
||||
dependency.projectDependencyArtifacts = it.projectConfiguration.allArtifacts.files.files
|
||||
dependency.projectDependencyArtifacts.each { resolvedDepsFiles.add(it) }
|
||||
if(it.projectConfiguration.artifacts.size() == 1) {
|
||||
def publishArtifact = it.projectConfiguration.allArtifacts.first()
|
||||
dependency.classifier = publishArtifact.classifier
|
||||
dependency.packaging = publishArtifact.extension ?: 'jar'
|
||||
}
|
||||
|
||||
if (componentResult != dependencyResult.from) {
|
||||
dependency.dependencies.addAll(
|
||||
@@ -810,8 +815,13 @@ class DependencyResolverImpl implements DependencyResolver {
|
||||
projectPath: componentSelector.projectPath,
|
||||
configurationName: it.projectConfiguration.name
|
||||
)
|
||||
dependency.projectDependencyArtifacts = artifactMap.get(componentResult.moduleVersion).collect { it.file }
|
||||
dependency.projectDependencyArtifacts = it.projectConfiguration.allArtifacts.files.files
|
||||
dependency.projectDependencyArtifacts.each { resolvedDepsFiles.add(it) }
|
||||
if(it.projectConfiguration.artifacts.size() == 1) {
|
||||
def publishArtifact = it.projectConfiguration.allArtifacts.first()
|
||||
dependency.classifier = publishArtifact.classifier
|
||||
dependency.packaging = publishArtifact.extension ?: 'jar'
|
||||
}
|
||||
|
||||
if (componentResult != dependencyResult.from) {
|
||||
dependency.dependencies.addAll(
|
||||
|
||||
Reference in New Issue
Block a user