Lorsque je configure un projet maven avec Apache fop et Java 11 , je reçois des avertissements et une NullPointerException
avec maven-compiler-plugin 3.8.0.
L'archétype utilisé fonctionne bien avec Java 11 pour créer rapidement une application de bureau, mais seulement si je n'ajoute pas la dépendance à fop-2.3. (Je me demande aussi comment il est possible que le même code Java fonctionne correctement dans mvn test mais échoue lors de l'ajout de la dépendance fop.)
ajout
[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]
vers pom.xml et l'exécution avec mvn test conduit à
<dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>fop</artifactId> <version>2.3</version> </dependency>
Je me demande s'il existe un pom.xml utilisant la dépendance fop et compilant pour Java 11 .
3 Réponses :
Le problème du pointeur nul disparaît si vous utilisez le tronc de fop 2.4.0-SNAPSHOT. Revenir à 2.3 donne à nouveau le pointeur nul.
Notez que pour fop, seule la dépendance a été ajoutée à pom.xml. Il n'a pas encore été utilisé dans le code source java.
Les avertissements demeurent.
avez-vous essayé
<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>
l'exception nullpointer est toujours là, Andreas. Cependant, l'avertissement concernant le xalan a disparu. Puis-je également exclure le script batik, et si oui: comment
J'ai commencé à monter un projet en utilisant FOP 2.3; J'ai utilisé un module-info.java contenant:
requires fop; requires avalon.framework.api; requires avalon.framework.impl;
Cependant, j'ai finalement dû différer, en raison du fractionnement des paquets avalon.
Ce problème particulier disparaîtra lorsque FOP 2.4 est publié: https://github.com/apache/fop/commit/bd7d5048785c691e6e3e152af10805f3127b760d" rel="nofollow noreferrer"> https://github.com/apache/fop/commit/bd7d506485bf >
Le problème Xalan que j'avais résolu plus tôt en le modularisant moi-même: - https://github.com/plutext/xalan-j/tree/Plutext_Java11_Repackaged_Docx4j
pourriez-vous exécuter la commande avec
-X
et partager le journal de débogage pourNullPointerException
également.Pour info, la dépendance fonctionne très bien pour moi dans un projet autonome. Donc, apparemment, quelque chose d'autre pourrait être la cause de l'exception à laquelle vous faites face.
Dans votre projet, utilisez-vous modulepath ou classpath? Avez-vous un fichier
module-info.java
dans votre projet? Si vous le faites, essayez de le supprimer et de l'exécuter avec classpath à la place et voyez si l'erreur persiste.pouvez-vous mettre à jour le plugin du compilateur pour cela et essayer org.apache.maven.plugins maven-compiler-plugin 3.8.0 version > 11
@nullpointer: ici J'ai téléchargé le fichier journal.
Essayez également de mettre à jour le plugin infaillible de
3.0.0-M1
vers3.0.0-M6
car ce bogue: maven-surefire-report-plugin échoue sur JDK 11: issues.apache.org/jira/browse/SUREFIRE-1613 est corrigé dans3.0.0-M3
Un bogue similaire est déjà signalé et corrigé: jira.apache.org/jira/browse/MCOMPILER- 355
@dkb merci. Sur maven central, il y a 3.0.0-M3, cela devrait faire. Oui, j'ai fait partie de MCOMPILER-360 et j'ai fait de mon mieux pour aider, mais j'ai abandonné à ce moment-là, car je ne suis pas un expert sur tout cela. Aujourd'hui, j'ai extrait maven-compiler-plugin de github, je l'ai installé dans 3.8.1-SNAPSHOT, mais comme en septembre de l'année dernière, le problème est resté. J'espère maintenant un lien ou deux, indiquant comment utiliser fop avec maven et Java11 - en supposant que le problème se trouve sur mon site.