Hi Sander,

> Have you tried using `--patch-module` during compilation of the Java sources 
> (as described in http://openjdk.java.net/jeps/261)? Not sure if it works with 
> class files in the patch directory as well, but it sounds like it could 
> address your usecase.

This fixes my problem completely (apart from the minor fact that
--patch-module's "use in production settings is strongly discouraged",
according to the JEP). I've confirmed with the Gradle team that this
approach would be fine to compile a mixed-language module.

Thank you!

On Mon, Jul 3, 2017 at 3:14 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
> On 03/07/2017 12:57, Alexander Udalov wrote:
>>
>> :
>> Thanks, a dummy class certainly workarounds the problem of javac
>> reporting a compilation error here. However, I hope there's a better
>> way because it'd be a bit strange to force users to create a dummy
>> Java class in every exported package in pure X modules (replace X with
>> any JVM language that is not Java).
>>
>> Moreover, as pointed by Jonathan in his answer, I failed to recognize
>> a larger problem initially, that it wouldn't be possible to refer to
>> non-Java classes from Java sources anyway. So what I'm really looking
>> for instead, is the way to "augment" the module currently compiled by
>> javac with a directory containing class files, emitted by another
>> compiler.
>>
>> Still, this workaround could prove helpful for example if there are
>> not many exported packages in a module (which I assume would be true
>> for many modules out there), and there are no Java sources in that
>> module.
>>
> In the module, does the non-Java source code reference the Java code or is
> it the other way around? It would be useful for thread to understand the
> order that they need to be compiled. As you use the term "augment" then I'm
> guessing that the Java code is compiled first, without reference to the
> non-Java code.
>
> Maybe a side point for now but I assume the Kotlin compiler doesn't
> understand modules yet and so will compile the source "as if" it's in the
> unnamed module. This could mean the resulting module is DOA if it references
> types in modules that it won't read when the module is resolved.
>
> -Alan

Reply via email to