improve project/module level libraries generation for Gradle import

Properly handle Gradle older than 2.4
This commit is contained in:
Nikita Skvortsov
2017-08-16 17:01:51 +03:00
parent 73c32c8a8c
commit af29ae94f9
2 changed files with 9 additions and 3 deletions
@@ -942,7 +942,12 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
if (moduleVersion == null) {
if (binaryPath.isFile()) {
boolean isModuleLocalLibrary = FileUtil.isAncestor(gradleModule.getGradleProject().getProjectDirectory(), binaryPath, false);
boolean isModuleLocalLibrary = false;
try {
isModuleLocalLibrary = FileUtil.isAncestor(gradleModule.getGradleProject().getProjectDirectory(), binaryPath, false);
} catch (UnsupportedMethodException e) {
// ignore, generate project-level library for the dependency
}
if (isModuleLocalLibrary) {
level = LibraryLevel.MODULE;
} else {
@@ -412,14 +412,15 @@ public class GradleDependenciesImportingTest extends GradleImportingTestCase {
assertModules("project", "p1", "p2");
final List<LibraryOrderEntry> moduleLibDepsP1 = getModuleLibDeps("p1", "Gradle: dep");
final boolean isGradleNewerThen_2_4 = GradleVersion.version(gradleVersion).getBaseVersion().compareTo(GradleVersion.version("2.4")) > 0;
for (LibraryOrderEntry libDep : moduleLibDepsP1) {
assertTrue("Dependency be project level: " + libDep.toString(), libDep.isModuleLevel());
assertEquals("Dependency must be " + (isGradleNewerThen_2_4 ? "module" : "project") + " level: " + libDep.toString(), isGradleNewerThen_2_4, libDep.isModuleLevel());
assertEquals("Wrong library dependency", depP1Jar.getUrl(), libDep.getLibrary().getUrls(OrderRootType.CLASSES)[0]);
}
final List<LibraryOrderEntry> moduleLibDepsP2 = getModuleLibDeps("p2", "Gradle: dep");
for (LibraryOrderEntry libDep : moduleLibDepsP2) {
assertTrue("Dependency be project level: " + libDep.toString(), libDep.isModuleLevel());
assertEquals("Dependency must be " + (isGradleNewerThen_2_4 ? "module" : "project") + " level: " + libDep.toString(), isGradleNewerThen_2_4, libDep.isModuleLevel());
assertEquals("Wrong library dependency", depP2Jar.getUrl(), libDep.getLibrary().getUrls(OrderRootType.CLASSES)[0]);
}
}