我有一个项目,带有 Maven 和 Java 11,它使用外部 用 Java 8 编写的库。只要该库是,它就可以正常工作 作为 Jar 文件导入。我正在使用 IntelliJ,但我正在寻找 对于 Eclipse 也有效的答案。
我还从 GitHub 克隆了外部存储库,并且想要 在我的项目中以源代码形式使用它。目标之一是做出改进 到外部库,并能够向其发送拉取请求 GitHub。但首先我希望从我的项目到库的调用能够工作 无需更改库源代码中的任何内容。
但是,我的项目中的类从 外部库无法做到这一点。
在 pom.xml 中,我尝试过
<modules>
<module>../path/to/external-libary</module>
</modules>
似乎有一些效果,但导入仍然不起作用。
当库用作 Jar 时,此依赖项有效:
<dependency>
<groupId>com.github.goxr3plus</groupId>
<artifactId>java-stream-player</artifactId>
<version>10.0.0</version>
</dependency>
我怀疑我必须在 module-info.java 或中做一些事情 pom.xml,但我不知道是什么。
最佳答案
如果外部库应被视为自动模块(通过模块信息中的“requires”引用,而不是在类路径中拉入),则依赖项必须指向jar文件,因为自动模块仅为jar文件定义。
Eclipse 通过将模块路径上的项目也识别为自动模块来稍微改变限制,这在启动时仍然需要额外的步骤,因为 Java 运行时不会接受类文件的文件夹作为自动模块。
关于java - Java 9+ 项目是否可以不受影响地使用 Java 8 中的单独源模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61687136/