A couple of solutions to the problem of the windows path being too long are present for gradle:
However, it is unclear to me how to handle this in a multi project setup. Would all sub-projects with the application plugin require these changes?
Could this also be specified in the init.gradle file?
Also is there a better workaround?
Apparently https://github.com/viswaramamoorthy/gradle-util-plugins/ has been published. However, it does not fix the problems for me. The initial java problem is solved - but not correctly. Some classes can no longer be loaded i.e. unit tests be executed in case of scala.
edit
experimenting with
task testPathingJar(type: Jar) {
        appendix = "testPathing"
        doFirst {
            manifest {
            attributes "Class-Path": configurations.testCompile.files.join(" ")
            }
        }
    }
    compileTestScala {
        dependsOn(testPathingJar)
        classpath = files(testPathingJar.archivePath)
    }    
    task pathingJar(type: Jar) {
        appendix = "pathing"
        doFirst {
            manifest {
            attributes "Class-Path": configurations.compile.files.join(" ")
            }
        }
    }
    compileScala {
        dependsOn(pathingJar)
        classpath = files(pathingJar.archivePath)
    }    
    build {
        dependsOn pathingJar
        doFirst {
            classpath = files("$buildDir/classes/main", "$buildDir/resources/main", pathingJar.archivePath)
        }
    }
unfortunately fails with during shadowJar as the manifest tricks reported in several of the links seem to have a problem with scala:
Cannot infer Scala class path because no Scala library Jar was found. Does project ':tma-mobility-frequencyCounting' declare dependency to scala-library? Searched classpath: file collection.
trying:
    jar {
      manifest {
        attributes(
          "Class-Path": configurations.compileOnly.collect { it.getName() }.join(' '))
      }
    }
fails for task `shadowDistZip` when executing `gradle build` with:
    java.io.IOException: Cannot run program "C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" (in directory "D:\users\username\development\projects\projectName\Code\spark\module_name"): CreateProcess error=206, Der Dateiname oder die Erweiterung ist zu lang
moving gradle user home to the root (also the project) of the partition:
    .\gradlew.bat build --gradle-user-home D:\projects\gradleHome
fails with the same error for task `test`.
When trying the strategy of https://github.com/jhipster/generator-jhipster/pull/4324/files like:
task pathingJar(type: Jar) {
    dependsOn configurations.runtime
    appendix = 'pathing'
    doFirst {
        manifest {
            attributes 'Class-Path': configurations.runtime.files.collect {
                it.toURL().toString().replaceFirst(/file:\/+/, '/')
            }.join(' ')
        }
    }
}
build {
    dependsOn pathingJar
    doFirst {
        classpath = files("$buildDir/classes/main", "$buildDir/resources/main", pathingJar.archivePath)        }
}
task pathingJarTest(type: Jar) {
    dependsOn configurations.runtime
    appendix = 'pathing'
    doFirst {
        manifest {
            attributes 'Class-Path': configurations.runtime.files.collect {
                it.toURL().toString().replaceFirst(/file:\/+/, '/')
            }.join(' ')
        }
    }
}
test {
    dependsOn pathingJarTest
    doFirst {
        classpath = files("$buildDir/classes/main", "$buildDir/resources/main", pathingJarTest.archivePath)        }
}
Fails with
Caused by: org.gradle.api.GradleException: There were failing tests. See the report at: file:///C:/tmp/projectName/moduleName/reports/tests/test/index.html
even though this file never is created
trying one more thing: a fat jar including all the test cases:
task fatTestJar(type: Jar) {
    baseName = project.name + '-test-all'
    from {
        from { configurations.testRuntime.collect { it.isDirectory() ? it : zipTree(it) }}
        from sourceSets.test.output
    }
    with jar
}
however, this does not yet compile.