2
votes

Comment configurer un projet maven en utilisant fop et java-11?

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 .


8 commentaires

pourriez-vous exécuter la commande avec -X et partager le journal de débogage pour NullPointerException é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 11


@nullpointer: ici J'ai téléchargé le fichier journal.


Essayez également de mettre à jour le plugin infaillible de 3.0.0-M1 vers 3.0.0-M6 car ce bogue: maven-surefire-report-plugin échoue sur JDK 11: issues.apache.org/jira/browse/SUREFIRE-1613 est corrigé dans 3.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.


3 Réponses :


0
votes

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.


0 commentaires

0
votes

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>


1 commentaires

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



0
votes

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


0 commentaires