java - JDK 11 模块中的不可变标准语法错误
问题描述
我有一个项目,我正在尝试使用不可变标准:https ://immutables.github.io/criteria.html
我在 pom.xml 中添加了以下内容:
<dependency>
<groupId>org.immutables</groupId>
<artifactId>criteria-inmemory</artifactId>
<version>2.8.2</version>
</dependency>
一切似乎都很好。但是,我在导入和工作时遇到了一些问题。我对工作正常的 Immutables.Value 没有任何问题。当我导入标准 Eclipse 抱怨:
The type org.immutables.criteria.Criteria is not accessible
所以我尝试将模块添加到我的 module-info.java 中,如下所示:
requires org.immutables.criteria-common;
也试过:
requires org.immutables.criteria-inmemory;
我正在使用 Eclipse 建议来自动完成模块名称,因为我真的不知道模块名称应该是什么,但是,当我添加上面的 Eclipse 时说,require 语句中的“-”存在语法错误。所以在这一点上我有点卡住了!如果有人有任何建议,我很想听听他们的意见!
谢谢!!
解决方案
我能够找到不可变库的问题,并发布了以下问题:https ://github.com/immutables/immutables/issues/1223
基本上,该库在构建 jar 文件时在 pom.xml 中创建了一个无效的Automatic-Module-Name标记。我们设置的值包含一个无效的“-”。
大喊@Naman 为我指明了正确的方向!谢谢!
我仍然想知道是否可以覆盖 jar 文件模块名称。对于库的用户来说,在这种情况下以某种方式覆盖库 jar 文件模块名称似乎很有用。
推荐阅读
- react-native - 有没有办法更改 Image ( base 64 ) 大小,以便可以通过 axios 调用上传?
- google-apps-script - 消息错误:“无法读取 nul 的属性 'getSheetByName' (ligne 4, fichier "code")
- math - 数学符号和泛化问题
- javascript - p5js:如何在调整窗口大小时使我随机生成的圆形包装画布响应?
- css - Leaflet Sidebar-V2 宽度 CSS
- javascript - Angular 缓存 - Chrome 正在频繁使用的路由上加载旧的 main.js 文件
- vue.js - Vue Storybook 不能与 Pug 组件一起编译
- svn - 是什么让 .svn/pristine 成长?
- java - 为 Kafka 运行 Springboot 应用程序时出现 java.lang.NullPointerException
- sockets - 取消 netty 中正在进行的连接尝试