在Eclipse中定义Java 9多模块项目

在Eclipse中定义Java 9多模块项目,eclipse,module,project,java-9,java-platform-module-system,Eclipse,Module,Project,Java 9,Java Platform Module System,我正在试用Java9Jigsaw模块系统(还没有模块体验),并想用它来封装我的项目中的类,但这很让人困惑 根据这一点,在一个项目中应该可以有多个模块。我在EclipseOxygen中创建了一个新项目(支持Java9),其结构与本文所示相同。但是Eclipse一直告诉我,一个项目中不能有超过一个module info.java 我真的不知道如何告诉Eclipse它应该使用“多模块模式”。我真的很感激不用为每个模块创建一个新项目 这项工作: 这不是: 但根据类似的说法,这应该是可行的: 使用E

我正在试用Java9Jigsaw模块系统(还没有模块体验),并想用它来封装我的项目中的类,但这很让人困惑

根据这一点,在一个项目中应该可以有多个模块。我在EclipseOxygen中创建了一个新项目(支持Java9),其结构与本文所示相同。但是Eclipse一直告诉我,一个项目中不能有超过一个
module info.java

我真的不知道如何告诉Eclipse它应该使用“多模块模式”。我真的很感激不用为每个模块创建一个新项目

这项工作:

这不是:

但根据类似的说法,这应该是可行的:

使用Eclipse部署模块化项目怎么样?关于新的jmod扩展没有什么可看的。我是否仍然像以前一样将其导出为可运行的JAR文件


请注意,我的问题是关于使用IDE(没有命令行,我的意思是使用应该是可能的IDE,对吧?)谢谢您的启发。

目前,Eclipse要求您为每个模块创建一个独立的项目(例如,因为每个模块都有自己的Java构建路径)

为了理解这个设计决策,考虑java模块对应于OSGi捆绑包/Eclipse插件,它始终有一个单独的项目用于每个捆绑/插件。如果您来自Maven世界,您可能会期望使用更深层的文件夹结构。但是模块是自包含的,将几个模块组合到一个项目中只会添加一个额外的文件夹级别,没有任何意义。但是,如果需要额外的文件夹级别,Eclipse支持嵌套项目和所谓的工作集


计划在2019年3月20日的Eclipse 2019-03(4.11)中将模块导出为图像(请参阅)。将模块导出为JAR(可在modulepath(
-m
)上使用)已经起作用(请参见)。

请将屏幕截图添加到错误和正在使用的项目结构中。我添加了示例屏幕截图。目前,Eclipse不支持每个项目都有多个模块(例如,因为每个模块都有自己的Java构建路径).真遗憾。但这至少回答了我的问题。@Arceus,在Eclipse中使用模块15年后,我从来没有看到过“多模块项目”的任何理由。正如howlger所暗示的,还有其他几种机制用于对模块进行分组。这与普通javac视图不同,在普通javac视图中,文件夹是我们唯一拥有的东西,因此所有分组都必须通过文件夹进行。从某种意义上说,Eclipse总是处于多模块模式,只是容器不是称为“项目”,而是称为“工作区”。我已经接受了。命令行编译似乎支持这种多模块模式,而eclipse根本不支持这种模式,这只是“一个遗憾”,因为我更喜欢只有一个工作区,以便在所有项目中都具有相同的工作区设置。我已经使用了工作集来表示分组的其他含义。@ClaudeMartin,因为Oxygen.3 JUnit测试也可以在模块项目中工作(请参阅和)。从架构角度看,我认为在一个eclipse项目中有多个模块的原因很多。包很弱,以确保特定的体系结构,而模块很严格,足以防止体系结构随着时间的推移而侵蚀。我想创建一个六边形架构,其中包含一个域内核和几个围绕它的适配器。都在一个项目中——因为它就是这样:只是一个项目。我知道osgi对它有不同的看法,认为模块是一个项目。但老实说,我希望使用Java9方法,而不是坚持任何osgi传统。