Java 9以上的项目可以在Java 8中使用独立的源码模块,不受影响吗?

问题描述 投票:0回答:1

我有一个项目,使用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中做一些事情,但我不知道是什么。

java maven java-8 java-9
1个回答
0
投票

如果外部库应该被看作是一个 自动模块 (通过模块info中的 "requests "引用,而不是在classpath中拉入),那么依赖关系是 必须 指向 罐头文件因为自动模块只为jar文件定义。

Eclipse稍微弯曲了一下限制,将模块路径上的项目也识别为自动模块,但在启动时仍然需要额外的步骤,因为Java运行时不会接受一个类文件的文件夹作为自动模块。

© www.soinside.com 2019 - 2024. All rights reserved.