mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-155963 Gradle war 'providedCompile' dependencies not observed since version 2016.1.2
This commit is contained in:
+37
@@ -644,4 +644,41 @@ public class GradleDependenciesImportingTest extends GradleImportingTestCase {
|
||||
assertModuleLibDepScope("project", "Gradle: junit:junit:4.11", DependencyScope.COMPILE);
|
||||
assertModuleLibDepScope("project", "Gradle: org.hamcrest:hamcrest-core:1.3", DependencyScope.PROVIDED, DependencyScope.RUNTIME);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TargetVersions("2.0+")
|
||||
public void testProvidedTransitiveDependencies() throws Exception {
|
||||
createSettingsFile("include 'projectA', 'projectB', 'projectC' ");
|
||||
importProject(
|
||||
"project(':projectA') {\n" +
|
||||
" apply plugin: 'java'\n" +
|
||||
"}\n" +
|
||||
"project(':projectB') {\n" +
|
||||
" apply plugin: 'java'\n" +
|
||||
" dependencies {\n" +
|
||||
" compile project(':projectA')\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"project(':projectC') {\n" +
|
||||
" apply plugin: 'war'\n" +
|
||||
" dependencies {\n" +
|
||||
" providedCompile project(':projectB')\n" +
|
||||
" }\n" +
|
||||
"}"
|
||||
);
|
||||
|
||||
assertModules("project", "projectA", "projectA_main", "projectA_test", "projectB", "projectB_main", "projectB_test", "projectC", "projectC_main", "projectC_test");
|
||||
|
||||
assertModuleModuleDepScope("projectB_main", "projectA_main", DependencyScope.COMPILE);
|
||||
assertModuleModuleDepScope("projectC_main", "projectA_main", DependencyScope.PROVIDED);
|
||||
assertModuleModuleDepScope("projectC_main", "projectB_main", DependencyScope.PROVIDED);
|
||||
|
||||
importProjectUsingSingeModulePerGradleProject();
|
||||
assertModules("project", "projectA", "projectB", "projectC");
|
||||
assertModuleModuleDepScope("projectB", "projectA", DependencyScope.COMPILE);
|
||||
if(GradleVersion.version(gradleVersion).compareTo(GradleVersion.version("2.5")) >= 0) {
|
||||
assertModuleModuleDepScope("projectC", "projectA", DependencyScope.PROVIDED);
|
||||
}
|
||||
assertModuleModuleDepScope("projectC", "projectB", DependencyScope.PROVIDED);
|
||||
}
|
||||
}
|
||||
|
||||
+8
-3
@@ -143,10 +143,15 @@ class DependencyResolverImpl implements DependencyResolver {
|
||||
Map<ComponentIdentifier, ComponentArtifactsResult> componentResultsMap = [:];
|
||||
componentResults.each { componentResultsMap.put(it.id, it) }
|
||||
|
||||
Multimap<ModuleComponentIdentifier, ProjectDependency> configurationProjectDependencies = ArrayListMultimap.create()
|
||||
configuration.incoming.dependencies.findAll { it instanceof ProjectDependency }.each {
|
||||
configurationProjectDependencies.put(toComponentIdentifier(it.group, it.name, it.version), it as ProjectDependency)
|
||||
def projectDeps
|
||||
projectDeps = { Configuration conf, map = ArrayListMultimap.create() ->
|
||||
conf.incoming.dependencies.findAll { it instanceof ProjectDependency }.each { it ->
|
||||
map.put(toComponentIdentifier(it.group, it.name, it.version), it as ProjectDependency)
|
||||
projectDeps((it as ProjectDependency).projectConfiguration, map)
|
||||
}
|
||||
map
|
||||
}
|
||||
Multimap<ModuleComponentIdentifier, ProjectDependency> configurationProjectDependencies = projectDeps(configuration)
|
||||
|
||||
ResolutionResult resolutionResult = configuration.incoming.resolutionResult
|
||||
if(!configuration.resolvedConfiguration.hasError()) {
|
||||
|
||||
Reference in New Issue
Block a user