我正在试用Java 9 Jigsaw模块系统(目前还没有模块经验),并且希望使用它来封装我的项目中的类,但是它令人困惑。
根据这篇文章,在一个项目中应该有多个模块。我在Eclipse中创建了一个新项目(支持Java 9),其结构与本文中所示的结构相同。但是Eclipse一直告诉我,在一个项目中我不能有一个以上的module-info.java。
我真的不知道如何告诉Eclipse它应该使用“多模块模式”。我真的很感激不用为每个模块创建一个新的项目。
这样做是可行的:

这不是:

但根据这篇文章的说法,类似的事情应该能奏效:

如何使用Eclipse部署一个模块化的项目?关于新的jmod扩展没有什么可看的。我是否仍然像以前一样将其导出为一个可运行的JAR文件?
请注意,我的问题是使用IDE (没有命令行,我指的是应该有可能的IDE,对吗?)谢谢你启发我。
发布于 2018-02-05 23:50:07
目前,Eclipse需要为每个模块创建一个单独的项目(例如,每个模块都有自己的构建路径)。
要理解这个设计决策,请考虑Java模块对应于OSGi包/Eclipse插件,并且始终为每个包/插件有一个单独的项目。如果您来自Maven世界,则可能需要更深的文件夹结构。但是模块是独立的,将几个模块合并到一个项目中只会增加一个额外的文件夹级别,而没有意义。但是,如果需要额外的文件夹级别,Eclipse支持嵌套项目和所谓的工作集。
将模块导出为映像是计划在2019年3月20日(见日食虫518445)的Eclipse2019-03 (4.11)。将模块导出为可以在模块路径(-m)上使用的JAR已经开始工作(参见我的视频)。
发布于 2021-12-12 09:18:48
我不知道这个问题是否仍然需要解答,但是您可以通过简单地删除构建路径上的所有源文件夹来解决这个问题。至少这对于Eclipse2021-12版本是有效的。
正如您所看到的,这是一个来自官方分级指南的演示项目,它有多个模块。每个模块都有自己的module-info.java。
如果我在Eclipse中打开这个项目,它将给我“模块上的重复条目-info.java”错误。
但是,如果我删除构建路径上的所有源文件夹,错误就会消失,并且项目可以在没有问题的情况下生成和运行。
唯一的问题是,您必须使用Gradle构建项目,以便生成每个模块的.jar,并在以后将它们包含在库中。
我认为这可能是上面howlger提到的解决方案。
https://stackoverflow.com/questions/48627249
复制相似问题