modulepath and classpath mixture
Jonathan Gibbons
jonathan.gibbons at oracle.com
Sat Feb 27 15:56:22 UTC 2016
At the risk of opening bikesheds, if we go that way, I would suggest
just -ALL- or just a new option -addallmods.
-- Jon
On 02/27/2016 03:25 AM, Robert Scholte wrote:
> Hi,
>
> I noticed[1] that -addmods already has a special option: ALL-SYSTEM
> What I'm looking for is something like ALL-MP or ALL-MODULEPATH, which
> simply exposes all modules on the modulepath to the classpath. The set
> of moduleEntries on the modulePath are already chosen with care and
> are in the end all required to be able to compile the test-classes
> without the need of knowing the name of the module being used to
> compile with.
>
> thanks,
> Robert
>
> [1] http://openjdk.java.net/jeps/261
>
>
> On Tue, 23 Feb 2016 01:52:50 +0100, Jonathan Gibbons
> <jonathan.gibbons at oracle.com> wrote:
>
>>
>>
>> On 02/22/2016 12:44 PM, Robert Scholte wrote:
>>> Hi,
>>>
>>> first of all I'd like to say that I'm very pleased with the new -mp
>>> options, these matches better with the way Apache Maven would like
>>> to work with jars and class-folders.
>>>
>>> Here's my use case: I noticed that if I add a module-info to
>>> src/main/java and put all compile-scoped dependencies to the module
>>> path, all compiles fines.
>>> I assume that developers are less interested in adding a
>>> module-info.java file to src/test/java, so that's what I'm doing
>>> right now too.
>>> Now it seems that I *must* add compile + test scoped to the
>>> *classpath* to be able to compile the test classes.
>>> My first approach was to leave the compile-scoped dependencies on
>>> the modulepath and all test-scoped dependencies on the classpath, so
>>> the modules keeps their inner related structure, but it seems that
>>> the classpath classes cannot access the modulepath classes.
>>>
>>> I'm looking for the confirmation that putting all dependencies on
>>> the classpath is indeed the right approach in this case.
>>>
>>> thanks,
>>> Robert
>>
>> Robert,
>>
>> We definitely need some more detailed notes on setting up javac
>> compilations (note to self!) but one thing to note is that by
>> default, the unnamed module (i.e. code on the classpath) only has
>> observability of the modules in the system image. To make modules on
>> the module path observable, you need to use the -addmods option.
>>
>> -- Jon
>
>
More information about the jigsaw-dev
mailing list