Skip to content

Instantly share code, notes, and snippets.

@lizhangqu
Last active December 15, 2020 13:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lizhangqu/22e7c1f008677c0500a041fc925a17bc to your computer and use it in GitHub Desktop.
Save lizhangqu/22e7c1f008677c0500a041fc925a17bc to your computer and use it in GitHub Desktop.
AndroidGradlePlugin3.0Dependency
import com.android.build.gradle.internal.ide.ArtifactDependencyGraph
import com.android.builder.model.Dependencies
import com.android.builder.model.SyncIssue
project.afterEvaluate {
project.android.applicationVariants.all { def variant ->
def variantData = variant.getMetaClass().getProperty(variant, 'variantData')
//方法一
Dependencies dependencies = new ArtifactDependencyGraph().createDependencies(variantData.scope, false, new Consumer<SyncIssue>() {
@Override
void accept(SyncIssue syncIssue) {
project.logger.error "syncIssue ${syncIssue}"
}
})
dependencies.libraries.each {
project.logger.error "libraries ${it}"
}
dependencies.javaLibraries.each {
project.logger.error "javaLibraries ${it}"
}
//方法二
def variantScope = variantData.scope
org.gradle.api.artifacts.ArtifactCollection runtimeAar = variantScope.getArtifactCollection(com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH,
com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope.ALL,
com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.AAR);
org.gradle.api.artifacts.ArtifactCollection runtimeJars = variantScope.getArtifactCollection(com.android.build.gradle.internal.publishing.AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH,
com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactScope.ALL,
com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType.JAR);
Set<org.gradle.api.artifacts.result.ResolvedArtifactResult> runtimeAarArtifacts = runtimeAar.getArtifacts()
Set<org.gradle.api.artifacts.result.ResolvedArtifactResult> runtimeJarArtifacts = runtimeJars.getArtifacts()
runtimeAarArtifacts.each { org.gradle.api.artifacts.result.ResolvedArtifactResult artifact ->
project.logger.error "runtimeAarArtifacts ${artifact}"
}
runtimeJarArtifacts.each { org.gradle.api.artifacts.result.ResolvedArtifactResult artifact ->
project.logger.error "runtimeJarArtifacts ${artifact}"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment