java - Java 9+ 项目是否可以不受影响地使用 Java 8 中的单独源模块?

标签 java maven java-8 java-9

我有一个项目,带有 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/

相关文章:

java - 每 5 秒更改一次 TextView

java - 配置单元 : Cannot read file from Google Cloud Platform

java-8 - Java 8 - 静态方法引用规则

java - 使用 Java nio files walk() 读取文件

java - 快速排序算法改进

java - 字符串池优化是Java定义的吗?

java - 如何使用 strings.xml 为我的 java 文件创建自动翻译

java - Maven打包有效pom

security - 迫切需要有关 Glassfish 3.1 部署和 Maven 中运行问题的帮助

Java流创建对象并比较