1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- allprojects { everyProj ->
- task printClasspath {
- doLast {
- def classPath = [].toSet();
- pluginManager.withPlugin('java') {
- classPath = sourceSets.main.runtimeClasspath.asPath
- }
- if (!classPath) {
- pluginManager.withPlugin('android') {
- def androidBootClasspath = android.getBootClasspath()[0]
- def cp = [androidBootClasspath];
- def confAttrSpec = [:]
- def configuredDimensionList = []
- if (project.hasProperty('confAttrs')) {
- confAttrSpec = confAttrs.toLowerCase().split(',').collectEntries { [(it.split(':')[0]) : it.split(':')[1]] }
- configuredDimensionList = android.flavorDimensionList.findAll { confAttrSpec[it] }
- }
- project.android.applicationVariants.all { v ->
- // remove classpath for unused buildTypes
- if (confAttrSpec['buildtype'] && v.buildType.getName() != confAttrSpec['buildtype']) {
- return
- }
- // remove classpath for unused dimensions
- if (configuredDimensionList) {
- def usedFlavors = configuredDimensionList.findAll {
- v.flavorName.toLowerCase() == confAttrSpec[it]
- }
- if (!usedFlavors) {
- return;
- }
- }
- v.getCompileClasspath(null).getFiles().each {
- File f ->
- cp.add(f.getAbsolutePath())
- }
- v.javaCompile.classpath.getFiles().each {
- f -> cp.add(f)
- }
- cp.add(v.javaCompile.destinationDir.getAbsolutePath())
- }
- classPath = cp.join(":")
- }
- }
- /*
- the `snykReachabilityClasspath` can be declared using a `ext` block
- in the projects build script
- e.g for java:
- ext {
- snykReachabilityClasspath = sourceSets.main.compileClasspath.asPath
- }
- It requires a path formatted string, e.g:
- */
- if (!classPath && project.hasProperty('snykReachabilityClasspath')) {
- classPath = project.snykReachabilityClasspath
- }
- if (classPath) println(classPath)
- }
- }
- }
|