问题标签 [module-info]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 我应该在 Java 9 中需要哪个模块才能使用 JPA?
我正在使用需要 JPA(javax.persistence.*
类)的项目测试 Java 9。当我添加module-info.java
并声明我的模块时,javax.persistece
包下的所有类都变得不可用。
我进行了很多搜索,但在 Java 9 模块项目中找不到需要使用 JPA 的模块。
更新 正如艾伦建议的那样,我跑了
但还是有了这个module-info.java
我得到“module-info.java:[3,18] module not found:java.persistence”。
更新 2 这是我的项目结构:
有依赖关系pom.xml
。javax.persistence-api
java - 什么是 Java 9 中的开放模块以及如何使用它?
前面有关键字和没有关键字的模块有什么区别open
?例如:
java - Java 9 模块的目录布局
我一直在尝试编写 Java 9 模块,但无论我做什么,我都会收到错误“包为空或不存在”。我已经尝试在线搜索预期的目录布局,并尝试了我能想到的目录布局的所有变体,但没有任何效果。
例如,这是我尝试过的一种布局
bar.foo/module-info.java
bar.foo/bar/foo/wtf.java
但是,编译仍然像往常一样给出相同的错误。
java - 无法为 Java 9 中自动生成的模块名称派生模块描述符?
我的项目依赖于 Netty Epoll 传输。这里是依赖:
此依赖项的自动生成的模块名称是:
由于native
Java 9 中保留了关键字,因此我无法将此模块作为依赖项添加到我的项目中:
由于:
此外,jar 工具--describe-module
报告以下内容:
无法为以下各项派生模块描述符:netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86_64.jar netty.transport.native.epoll:无效的模块名称:'native' 不是 Java 标识符
有什么解决方法吗?(当然,“发布正确的网络工件”除外)。
编辑:
作为维护者的快速修复 - 您可以添加下一行来构建:
java - Java 9 中的 requires 和 requires 传递语句有什么区别?
模块声明中的requires和requires 传递模块语句有什么区别?
例如:
java - 模块声明中的requires和requires static有什么区别
模块声明中的requires和requires 静态模块语句有什么区别?
例如:
java - Java 9:模块路径上可能有 2 个同名模块
模块路径上是否可以有 2 个具有完全相同名称(但内容略有不同)的模块?
据我所知,Java 9 编译器并没有抱怨它。我有 2 个模块声明如下:
两者都包含com.dj.helper
包装,但包装内的内容不同。然后在我的主应用程序中,我希望导入这个模块:
同名的两个模块都在我的模块路径上。
我希望在编译我的com.dj
模块时,编译器会抱怨同一个模块存在两次,但事实并非如此。这是否实际上意味着您的模块路径上可能有同一个 jar 的 2 个版本,而 Java 将不知道该使用哪一个?
java - SPI + JDK 9 + 模块信息.java
我正在 JDK 9 上试验 SPI。整个示例适用于没有“module-info.java”的 JDK 9。添加“module-info.java”后,ServiceLocator 没有找到实现类。我很困惑,在模块化的 JDK 9 项目中找不到有效的 SPI 示例。
所以我的示例项目如下所示:
我已经介绍了界面:
该接口通过以下方式实现:
通过类似于以下的代码搜索实现:
现在是有趣的部分。当我在没有以下情况下执行课程时:
- /implementationB/src/main/java/module-info.java
- /applicationB/src/main/java/module-info.java
然后找到实现类并打印出文本。
引入这两个“module-info.java”文件后,ServiceLocator没有找到实现类。/applicationB/src/main/java/module-info.java的内容:
/implementationB/src/main/java/module-info.java的内容:
当我取消注释时:
行然后发生编译错误:
我曾尝试将包名称更改为编译错误提示,但随后我引入了“拆分包”问题。
我应该怎么做才能在完全模块化的 JDK 9 中使用 ServiceLocator?可能吗?有没有人看过工作的例子?代码也可以在这里看到:https ://github.com/RadoslawOsinski/spidemo
java - module-info.java 使用 maven-compiler-plugin 和自动模块编译失败
我根据需要使用插件的 v3.7.0 和 JDK 9.0.1。我添加了两个requires
语句,每个语句都引用类路径(自动模块)中的一个 jar。将 jar 移到 Modulepath 后,module-info.java 在 Eclipse 中编译成功。但是,Maven 给了我一个编译器错误,说其中一个缺失(奇怪的是,不是第一个,它只是之前的一行)。我试图检查自动模块名称,但我从这个 jar 的命令中得到一个错误。这个错误是什么意思,我该如何修复它,以便我可以找到正确的模块名称?
我在下面的输出中替换了我的用户名。有问题的 jar 确实使用了 aServiceLoader
但未使用 Java 9 编译。
如何处理 Java 9 中自动生成的模块名称中的 java 关键字?与在模块名称中使用 Java 标识符有关的不同错误。我的模块的自动 jar 名称应该只是rcf
因为 jar 名称是rcf-1.0.jar
. 我得到的错误也不同。
java - 如何从 Maven 依赖项构建 java 9 依赖项
Java9 引入了类似于 OSGI 和 Maven Dependecies 的强大模块化。
是否有一个 maven 插件能够构建检查 maven 依赖项的 java 9 依赖项?
例如,从
至
我已经阅读了这篇文章,但它并不是那么有用 - 如何在 maven 中表达对 java ee 特性的依赖以过渡到 Java 9?