当我使用Apache fop和Java 11设置maven项目时,我会收到警告和带有maven-compiler-plugin 3.8.0的NullPointerException
。
使用的原型在Java 11中运行良好,可以快速创建桌面应用程序,但前提是我没有将依赖项添加到fop-2.3。 (我也想知道在mvn测试中相同的Java代码是如何工作的,但是在添加fop依赖项时会失败。)
加入
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.3</version>
</dependency>
到pom.xml并运行mvn测试导致
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ checkXslt ---
[WARNING] Can't extract module name from batik-script-1.10.jar: Provider class org.apache.batik.bridge.RhinoInterpreterFactory not in module
[WARNING] Can't extract module name from xalan-2.7.2.jar: Provider class org.apache.bsf.BSFManager not in module
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project checkXslt: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile failed. NullPointerException -> [Help 1]
我想知道是否有一个pom.xml使用fop依赖和编译Java 11。
如果使用fop 2.4.0-SNAPSHOT的主干,则nullpointer问题会消失。回到2.3会再次给出nullpointer。
请注意,对于fop,只是将依赖项添加到pom.xml中。它尚未在java源代码中使用。
警告仍然存在。
你有没有尝试过
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.3</version>
<exclusions>
<exclusion>
<groupId>xalan</groupId>
<artifactId>serializer</artifactId>
</exclusion>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
</exclusions>
</dependency>
我开始使用FOP 2.3建立一个项目;我使用了一个module-info.java,其中包含:
requires fop;
requires avalon.framework.api;
requires avalon.framework.impl;
然而,由于avalon拆分包,最终我不得不推迟。
当FOP 2.4发布时,这个特殊问题将会消失:https://github.com/apache/fop/commit/bd7d5048785c691e6e3e152af10805f3127b760d
我之前通过模块化来解决的Xalan问题: - https://github.com/plutext/xalan-j/tree/Plutext_Java11_Repackaged_Docx4j