我目前正在测试将现有应用程序迁移到Jigsaw Modules。我的一个模块使用ElasticSearch及其Groovy插件。
不幸的是,他们共享一个拆分包,所以mvn install
给了我:
x从lang.groovy和elasticsearch读取包org.elasticsearch.script.groovy
对于描述符中的每个必需模块,其中x是每个模块的名称。
我认为在Java 9最终版本的时候,一个较新的elasticsearch版本将消除拆分包,但是通常有一种方法来处理遗留依赖项中的拆分包吗?
我希望能够在类路径而不是模块路径上使用它们,但在阅读this conversation on the mailing list之后,似乎没有办法告诉Maven编译器这样做。
maven 3.3.9 - maven-compiler-plugin 3.6.0 - jdk9-ea + 149 - elasticsearch 2.3.3
答案 0 :(得分:2)
经过一些更多测试后,我认为有一些选项可以解决许多(但绝对不是全部)第三方拆分包的情况。
根据具体情况,其中一个选项可能非常适合解决拆分包问题。但是它们都不能处理一段连贯的代码实际上需要从拆分包的两个部分访问类的情况。