Java 11 Unable to derive module descriptor

柔情痞子 提交于 2019-12-08 21:15:43

问题


I am getting this error message when I try to compile my new modularized Java 11 application:

Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:\Users\inter\.m2\repository\xalan\xalan\2.7.2\xalan-2.7.2.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module

This appears to be an issue from a dependency of a dependency. I can't even find which module is pulling it in so I can update it.

I am using openjdk 11.0.2, IntelliJ 2018.3.4, Maven

Any advice how I can troubleshoot or fix this? I have found very little documentation on this issue.


回答1:


I had a look at their bug tracker following their index page and wasn't able to find this reported and not sure how actively is the library being maintained either.

Just to explain what has caused the issue in your code, I would share a screenshot and then try to add details around it.

So within the JAR that for version 2.7.2, there are service declarations (META-INF/services) which include org.apache.xalan.extensions.bsf.BSFManager as one of them. The service file here has to indicate the Provider thereby for itself and the class is supposed to be present(modulepath or unnamed module) to be resolved for reliable configuration of modules.

In this case for the module xalan(automatic module), the service listed doesn't have the provider class packaged within the dependency itself. (See the package org.apache, it doesn't further have package bsf and the class BSFManager thereby. Hence the exception as you get.

One of the tweaks to get that resolved would be to get update the library jar (patch it) and get rid of the service file if you're not using it.

An ideal way would be reporting this to the maintainers and getting it resolved if they are actively maintaining it (the last release was almost 5 years back, might just want to look for a better alternative IMHO).



来源:https://stackoverflow.com/questions/54682417/java-11-unable-to-derive-module-descriptor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!