背景
在maven中,工件可以声明依赖关系
<optional>true</optional>
Run Code Online (Sandbox Code Playgroud)
这意味着不需要依赖,但如果存在则可以使用.
模块系统的状态似乎指定模块只能读取它所需的模块.
问题
用例
我有一个框架,集成了应用程序可能使用或不使用的各种库.目前,该框架是一个单独的JAR,它反映了类路径以跳过缺少库的集成代码.
我想我们可以将它分成每个配置的单独模块,但这会导致JAR数量的组合爆炸,因为我们不仅需要为每个可选依赖项单独的JAR,而且对于大多数对都需要单独的JAR可选的依赖项......
需求和需要模块声明中的静态模块语句有什么区别?
例如:
module bar {
requires java.compiler;
requires static java.base;
}
Run Code Online (Sandbox Code Playgroud)