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?

TechFind
la source
é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>
Raghuram
la source
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.

SebastianH
la source
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.

visu
la source
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>
Kresimir Plese
la source
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é.

Philip Rodrigues
la source
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.

JS
la source
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

Greg
la source
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>
Motilal Daravatu
la source
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>
A. Rick
la source
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.

jprism
la source
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.

Yogesh Patil
la source
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.

vinay
la source
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é)

Sachin Ambalkar
la source
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.

Rajan Chauhan
la source