use lenient configurations to retrieve files

This commit is contained in:
Nikita Skvortsov
2018-05-23 09:55:08 +03:00
parent 2d30075d48
commit ca975e6986
3 changed files with 6 additions and 8 deletions
@@ -53,7 +53,7 @@ public class CompileDependenciesProvider {
}
Set<File> cached = myConfigurationFilesCache.get(key);
if (cached == null) {
cached = key.getFiles();
cached = key.getResolvedConfiguration().getLenientConfiguration().getFiles();
myConfigurationFilesCache.put(key, cached);
}
return cached;
@@ -478,16 +478,14 @@ public class DependencyResolverImpl implements DependencyResolver {
Collection<File> resolvedFiles = getFiles(dep);
boolean checkCompileOnlyDeps = compileDependenciesProvider.getCompileClasspathConfiguration() != null;
final Set<File> compileConfigurationFiles = compileDependenciesProvider.getCompileConfigurationFiles();
final Set<File> compileOnlyConfigurationFiles = compileDependenciesProvider.getCompileOnlyConfigurationFiles();
final Set<File> deprecatedCompileConfigurationFiles = compileDependenciesProvider.getDeprecatedCompileConfigurationFiles();
final Set<File> runtimeConfigurationFiles = runtimeDependenciesProvider.getConfigurationFiles();
// since version 3.4 compileOnly no longer extends compile
// so, we can use compileOnly configuration for the check
if (isJavaLibraryPluginSupported) {
final Set<File> compileOnlyConfigurationFiles = compileDependenciesProvider.getCompileOnlyConfigurationFiles();
if (compileOnlyConfigurationFiles != null && compileOnlyConfigurationFiles.containsAll(resolvedFiles)) {
// deprecated 'compile' configuration still can be used
final Set<File> deprecatedCompileConfigurationFiles = compileDependenciesProvider.getDeprecatedCompileConfigurationFiles();
if (deprecatedCompileConfigurationFiles == null || !deprecatedCompileConfigurationFiles.containsAll(resolvedFiles)) {
dep.setScope(PROVIDED_SCOPE);
}
@@ -495,8 +493,8 @@ public class DependencyResolverImpl implements DependencyResolver {
}
else {
if (checkCompileOnlyDeps
&& !compileConfigurationFiles.containsAll(resolvedFiles)
&& !runtimeConfigurationFiles.containsAll(resolvedFiles)) {
&& !compileDependenciesProvider.getCompileConfigurationFiles().containsAll(resolvedFiles)
&& !runtimeDependenciesProvider.getConfigurationFiles().containsAll(resolvedFiles)) {
dep.setScope(PROVIDED_SCOPE);
}
}
@@ -31,7 +31,7 @@ public class RuntimeDependenciesProvider {
public Set<File> getConfigurationFiles() {
if (myConfigurationFiles == null) {
myConfigurationFiles = myConfiguration.getFiles();
myConfigurationFiles = myConfiguration.getResolvedConfiguration().getLenientConfiguration().getFiles();
}
return myConfigurationFiles;
}