In https://github.com/vorburger/minecraft-storeys-maker I am using the APT annotation processor from Vert.x which, unfortunately, currently generates Java source code directly into build/classes/ - so in its minecraft-storeys-maker/api/build/classes/java/main/ch/vorburger/minecraft/storeys/api there are both sources and class files: Minecraft.class, MinecraftVertxEBProxy.class, MinecraftVertxEBProxy.java, MinecraftVertxProxyHandler.class, MinecraftVertxProxyHandler.java package-info.class
This seems to work just fine in the normal Gradle command line build - class files are present and packaged as they should be, all good.
But when running tests in Eclipse in a project set up via Buildhip, then that Vert.x generated code is obviously not found, because class files are (rightfully) in bin/. Adding this hack to build.gradle works for Eclipse:
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir 'build/classes/java/main/'
}
}
}
but this, not surprisingly, then breaks the command line build as follows:
> Task :api:compileJava
(...)
Unknown file extension: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/MinecraftVertxProxyHandler.class
Unknown file extension: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/package-info.class
Unknown file extension: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/Minecraft.class
Missing header in: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/MinecraftVertxProxyHandler.java
Unknown file extension: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/MinecraftVertxEBProxy.class
Missing header in: api/build/classes/java/main/Minecraft-js/minecraft-proxy.js
Missing header in: api/build/classes/java/main/Minecraft-ts/minecraft-proxy.ts
Missing header in: api/build/classes/java/main/Minecraft-ts/minecraft-proxy.d.ts
Missing header in: api/build/classes/java/main/ch/vorburger/minecraft/storeys/api/MinecraftVertxEBProxy.java
Long story short : How do I add a srcDir only for Eclipse Buildship, but not the regular build from command line?
PS: Assume that Vert.x won’t change overnight; although we’ll see in https://github.com/vert-x3/vertx-codegen/issues/181 and https://github.com/vert-x3/vertx-codegen/issues/182 if it can be improved in the future.