modulepath spec
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Dec 7 19:51:15 UTC 2015
On 12/07/2015 11:46 AM, Alan Bateman wrote:
> On 07/12/2015 17:18, Stephane Epardaud wrote:
>> Hi,
>>
>> When there is a -modulepath argument, is it a path in the Unix sense?
>> With a list of File.pathSeparator-separated folders?
>>
>> Ceylon produces `.car` files instead of `.jar` files, but they're really
>> zip files like jars. Will Java examine the file type to determine that
>> it's a zip file, or will it give up at its name?
>>
>> Will there be support for module folder trees? Otherwise it pretty much
>> forces Maven/Ceylon users to copy modules from a tree to a flat folder.
>> That's an extra step, and it's possible, but it'd be nice if it weren't
>> mandatory. I know there are several tree mappings that don't entirely
>> correspond, with Ant, Maven, OSGi and Ceylon possibly differring
>> slightly, so this may be difficult.
>>
>> Worst case I'll add a "ceylon export-java-mlib my.module/2.0" to create
>> that mlib folder and populate it flatly and rename `.car` files to
>> `.jar`.
>>
> Module path is conceptually very simple, it's just a sequence of sets
> of modules.
>
> As things currently stand then the -mp argument to javac and java is a
> sequence of directories, with File.pathSeparator as the separator. The
> current implementations just looks for exploded modules or files
> ending with ".jar" files in those directories. So ".car" files will be
> ignored. There are also ".jmod" files that are also zip format but
> with a different internal structure.
>
> The layout issue is something that Robert Scholte brought up in the
> last few days too (in the context of Maven). There are a couple of
> ideas floating around but no conclusions yet. In Robert's thread then
> the suggestion is that it allow file paths to JAR files (like class
> path). I don't think there is any conclusion on this topic yet so
> feedback in this area is timely.
>
> -Alan.
At a lower level, when javac encounters file on a class path with a file
extension it doesn't know about, it does try and open the file as a zip
file. I would expect the same heuristics to apply as appropriate, once
we figure the semantics of module path, as indicated by Alan.
-- Jon
More information about the jigsaw-dev
mailing list