Skip to content

Instantly share code, notes, and snippets.

@gitzxon
Created May 7, 2019 11:59
Show Gist options
  • Save gitzxon/444e13fc46c2ec20f5a71824a421bbfc to your computer and use it in GitHub Desktop.
Save gitzxon/444e13fc46c2ec20f5a71824a421bbfc to your computer and use it in GitHub Desktop.
copy dependencies to build/dependencies
// ./gradlew copyDependenciesDebug
android.applicationVariants.all { variant ->
task "copyDependencies${variant.name.capitalize()}"() {
outputs.upToDateWhen { false }
doLast {
println "Executing copyDependencies${variant.name.capitalize()}"
variant.getCompileClasspath().each { fileDependency ->
def sourcePath = fileDependency.absolutePath
def destinationPath = project.projectDir.path + "/build/dependencies/${variant.name}/"
println "Copying dependency:"
println sourcePath
//The monstrous regex that gets the name of the lib from it’s exploded .aar path
def dependencyName
if (sourcePath.contains("classes.jar")) {
def dependencyNameRegexResult = (sourcePath =~ /.*\/(.*)\.aar\/.*\/jars\/classes\.jar/)
if (dependencyNameRegexResult.size() > 0) {
dependencyName = dependencyNameRegexResult[0][1]
println "Exploded AAR found : ${dependencyName}"
}
}
copy {
from sourcePath
into destinationPath
rename {String filename ->
if (filename.contains("classes.jar") && dependencyName != null) {
dependencyName = "${dependencyName}.jar"
println "Renaming dependency file to : ${dependencyName}"
return dependencyName
}
return filename
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment