Create a gist now

Instantly share code, notes, and snippets.

#!/bin/sh
#
# I'd expect the following to fail, but it works because javac will implicitly load A.java from the A_as_resource.jar.
# That wouldn't happen if javac was called with a -sourcepath.
# Proof by example: uncomment the `-sourcepath :` compiler argument and run `gradle clean build` again
#
mkdir -p A_as_resource/src/main/resources/foo/bar B_only/src/main/java/foo/bar
echo '
include "A_as_resource"
include "B_only"
' > settings.gradle
echo '
apply plugin: "java"
' > A_as_resource/build.gradle;
echo '
package foo.bar;
abstract class A {
}
' > A_as_resource/src/main/resources/foo/bar/A.java;
echo '
apply plugin: "java"
dependencies {
compile project(":A_as_resource")
}
// Uncomment to workaround bug:
// compileJava.options.compilerArgs += [ "-sourcepath", ":" ]
' > B_only/build.gradle;
echo '
package foo.bar;
class B extends A {
}
' > B_only/src/main/java/foo/bar/B.java;
gradle build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment