Impossible de construire org.apache.maven.plugin.war.util.WebappStructure car il n'a pas de constructeur no-args


92
[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.apache.maven.plugin.war.util.WebappStructure
required-type       : org.apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Trace
com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.apache.maven.plugin.war.util.WebappStructure
required-type       : org.apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63)
    at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117)
    at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:29)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:846)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:833)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:781)
    at org.apache.maven.plugin.war.util.WebappStructureSerializer.fromXml(WebappStructureSerializer.java:73)
    at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:404)
    at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:375)
    at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:181)
    at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:143)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
    at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.newInstance(PureJavaReflectionProvider.java:59)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:257)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:124)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56)
    ... 31 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sat Sep 24 17:25:45 CEST 2011
[INFO] Final Memory: 15M/37M
[INFO] ------------------------------------------------------------------------

JDK: 1,7

Plugin du compilateur Maven:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
</plugin>

Lorsque j'exécute une erreur d'installation de la cible ci-dessus, comment puis-je la résoudre?


éventuellement bosse votre version xstream?
rogerdpack

Réponses:


136

Peut-être qu'une version du plugin maven war est utilisée, qui ne fonctionne pas avec Java 7? Selon ce problème (qui décrit un problème similaire), la 2.1.1version du plugin maven war devrait fonctionner.

Incluez les éléments suivants dans votre pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>

mais je ne sais pas comment appliquer ce correctif
TechFind

@kasim. Réponse mise à jour pour indiquer comment procéder.
Raghuram le

Toujours la même erreur, maven-war-plugin: 2.1.1 et Java 7. Des idées? EDIT: Il semble que ce soit fixé pour l'objectif de «guerre», pas pour l'objectif «explosé». jira.codehaus.org/browse/MWAR-279
BrunoJCM

Problème rencontré sur JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Résolu en passant à la dernière version de Java 6 JDK de Sun (u45).
8bitjunkie

4
Il existe maintenant une version 2.4 de maven-war-plugin qui a résolu le problème pour moi.
Benjamin Seiller

16

J'ai eu ce problème en faisant un mvn install. Je l'ai résolu en faisant un mvn cleanpremier, suivi d'un mvn install.

En utilisant maven 2.1.1, JDK 1.7.0.45.


9

C'est confirmé: JDK7 avec Maven 2.x produira cette erreur.

J'utilise Maven 2.2.1 et JDK7 et j'ai cette erreur. J'ai changé le JDK en version 1.6 et cela fonctionne très bien.


8

Au lieu de changer les versions JDK et Maven, essayez ceci:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
    <version>2.3.2</version>
</plugin>

5

Confirmé, j'ai rencontré le même problème avec maven 3.0.2 et jdk 1.7.0_02. Après avoir fonctionné avec jdk 1.6.0_30, il s'est très bien compilé.


4

Je ne pense pas que la version soit le problème. J'ai résolu de supprimer mon dossier cible (car il contient webapp-cache.xml) et de refaire l'installation de Maven.


4

Apache Maven WAR Plugin 3.0.0 a résolu tous les problèmes:

<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>

Peu importe si vous utilisez jdk 1.6, 1.7 ou 1.8


2

si vous utilisez jdk 1.6, veuillez ajouter cette entrée de plugin à votre pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>

Merci, même l'ajout des options a aidé à guérir la construction :)
Guido U. Draheim

2

Cela semble certainement être lié à des versions de plugin, de bibliothèque et de langue incompatibles.

Deux ans, et deux versions de Java plus tard, j'ai eu cette même erreur en faisant un exemple de projet d'un livre plus ancien sur Spring et Hibernate.

J'ai pu résoudre l'erreur en commentant toutes les balises de version pour apache.maven.plugins et en définissant la version Java sur 1.8. Cela m'a permis de savoir quelle était la dernière et la meilleure version des bibliothèques, avec le coût de certains avertissements de Maven concernant l'absence de balises de version. Si vous vous souciez des avertissements, vous pouvez définir les balises de version sur la dernière version et les avertissements de Maven devraient disparaître.

J'ai exécuté mvn clean packageet ensuite juste mvn package.

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
<!-- <version>2.1-beta-1</version> -->
</plugin>
<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
<!-- <version>2.1</version> -->
     <configuration>
          <source>1.8</source>
          <target>1.8</target>
     </configuration>
</plugin>

2

J'ai eu ce problème avec mon éclipse Kepler. Dès que je suis passé à 4.4 (Luna), tout est parti. Doit être un problème avec eclipse + maven intégré

J'ai essayé les JDK 1.7 et 1.8. Aucune différence.


1

Pour moi, le changement de version du plugin n'a pas pu résoudre le problème et le changement de version de JDK n'est pas sous mon contrôle.

Cependant, l'exécution mvn cleanavant a mvn tomcat6:deployrésolu ce problème.


0

Assurez-vous que la version JDK dans votre chemin de construction et la version spécifiée dans la balise source correspondent à la même chose.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.1</version>
    <configuration>
     **<source>1.7</source>**
       <target>1.7</target>
       <debug>true</debug>
    </configuration>
</plugin> `

J'avais le chemin de construction pointant vers jdk 1.7 et "1.6" dans la balise source, lorsque j'ai corrigé la version à 1.7 dans la balise source, le problème a été résolu.

Exécutez les packages mnv clean et mvn.


0

Essayez de supprimer tout votre cache. Lorsque j'ai supprimé le dossier cible, cela fonctionne bien.

(Le dossier cible est l'endroit où maven met tout le code compilé)


0

J'obtenais la même erreur après avoir mis à niveau ma version java de 8 à une version 8.x, je l'ai corrigée en allant à pom puis 1. clic droit> maven> ajouter un plugin 2. tapez org.apache.maven puis recherchez war plugin l'ajoutez et enregistrez, puis nettoyez et installez. Cela devrait marcher.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.