我有一个项目,使用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中做一些事情,但我不知道是什么。
如果外部库应该被看作是一个 自动模块 (通过模块info中的 "requests "引用,而不是在classpath中拉入),那么依赖关系是 必须 指向 罐头文件因为自动模块只为jar文件定义。
Eclipse稍微弯曲了一下限制,将模块路径上的项目也识别为自动模块,但在启动时仍然需要额外的步骤,因为Java运行时不会接受一个类文件的文件夹作为自动模块。