@Nullable public static String findVersionInClasspath(Project project, String group, String module) { return project .getBuildscript() .getConfigurations() .getByName("classpath") .getIncoming() .getArtifacts() .getArtifacts() .stream() .flatMap( artifactResult -> artifactResult.getId().getComponentIdentifier() instanceof ModuleComponentIdentifier ? Stream.of( (ModuleComponentIdentifier) artifactResult.getId().getComponentIdentifier()) : Stream.empty()) .filter( identifier -> (group.equals(identifier.getGroup()) && module.equals(identifier.getModule()))) .findFirst() .map(ModuleComponentIdentifier::getVersion) .orElse(null); }
@InputFiles @Classpath FileCollection getJarDependencies() { //Thanks to Xavier Durcrohet for this //https://android.googlesource.com/platform/tools/base/+/gradle_3.0.0/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/scope/VariantScopeImpl.java#1037 Action<AttributeContainer> attributes = container -> container.attribute(ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES.getType()); boolean lenientMode = false; return variant .getCompileConfiguration() .getIncoming() .artifactView( config -> { config.attributes(attributes); config.lenient(lenientMode); }) .getArtifacts() .getArtifactFiles(); }
@Optional @InputFiles @PathSensitive(PathSensitivity.RELATIVE) public FileCollection getLibraries() { if (libraries != null) { return libraries.getArtifactFiles(); } return null; }
.getIncoming() .getArtifacts() .getArtifacts() .stream() .filter(
private static Set<ResolvedArtifactResult> getArtifacts( Configuration configuration, String value, Spec<ComponentIdentifier> filter) { return configuration .getIncoming() .artifactView( config -> { config.attributes( container -> container.attribute(Attribute.of("artifactType", String.class), value)); config.componentFilter(filter); }) .getArtifacts() .getArtifacts(); }
int size = sourceFolderSets.size() + 4; if (libraries != null) { size += libraries.getArtifacts().size(); Set<ResolvedArtifactResult> libArtifacts = libraries.getArtifacts();