Impossibile costruire org.apache.maven.plugin.war.util.WebappStructure in quanto non dispone di un costruttore senza argomenti


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 del compilatore Maven:

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

quando eseguo l'installazione della destinazione sopra si verifica un errore, come posso risolverlo?


forse urtare la tua versione xstream?
— Rogerdpack

Risposte:


136

Forse viene utilizzata una versione del plug-in Maven War , che non funziona con Java 7? In base a questo problema (che descrive un problema simile), la 2.1.1versione del plugin Maven War dovrebbe funzionare.

Includi quanto segue nel tuo pom.xml

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

ma non so come applicare quella patch
— TechFind

@kasim. Risposta aggiornata per indicare come eseguire questa operazione.
— Raghuram,

Ricevo ancora lo stesso errore, maven-war-plugin: 2.1.1 e Java 7. Qualche idea? EDIT: Sembra che sia fissato per l'obiettivo "guerra", non per l'obiettivo "esploso". jira.codehaus.org/browse/MWAR-279
— BrunoJCM

Problema riscontrato su JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Risolto passando all'ultima versione di Java 6 JDK da Sun (u45).
— 8bitjunkie

4
Ormai esiste una versione 2.4 di maven-war-plugin che ha risolto il problema per me.
— Benjamin Seiller

16

Ho avuto questo problema durante l'esecuzione di un file mvn install. L'ho risolto facendo un mvn cleanprimo, seguito da un mvn install.

Utilizzando Maven 2.1.1, JDK 1.7.0.45.


9

È confermato: JDK7 con Maven 2.x produrrà questo errore.

Sto usando Maven 2.2.1 e JDK7 e ho ricevuto questo errore. Ho cambiato il JDK alla versione 1.6 e funziona bene.


8

Invece di cambiare le versioni di JDK e di Maven, prova questo:

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

5

Confermato, mi sono imbattuto nello stesso problema con Maven 3.0.2 e jdk 1.7.0_02. Dopo aver eseguito su jdk 1.6.0_30, è stato compilato perfettamente.


4

Non credo che la versione fosse il problema. Ho risolto eliminando la mia cartella di destinazione (perché contiene webapp-cache.xml) e facendo di nuovo l'installazione di Maven.


4

Apache Maven WAR Plugin 3.0.0 ha risolto tutti i problemi:

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

Non importa se usi jdk 1.6, 1.7 o 1.8


2

se stai usando jdk 1.6 aggiungi gentilmente questa voce del plugin al tuo 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>

Grazie, anche l'aggiunta delle opzioni ha contribuito a curare la build :)
— Guido U. Draheim

2

Questo sembra decisamente essere correlato a versioni di plugin, librerie e lingue incompatibili.

Due anni e due versioni di Java dopo, ho riscontrato lo stesso errore durante un progetto di esempio da un vecchio libro su Spring e Hibernate.

Sono stato in grado di risolvere l'errore commentando tutti i tag di versione per apache.maven.plugins e impostando la versione di Java su 1.8. Questo mi ha fatto sapere qual era la versione più recente e migliore delle librerie, con il costo di alcuni avvisi di Maven sulla mancanza dei tag di versione. Se ti interessano gli avvisi, puoi impostare i tag della versione come versione più recente e gli avvisi di Maven dovrebbero scomparire.

Ho eseguito mvn clean packagee poi solo 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

Ho avuto questo problema con il mio eclipse Kepler. Non appena sono passato a 4.4 (Luna), tutto è andato. Deve essere un problema con eclipse + maven incorporato

Ho provato sia JDK 1.7 che 1.8. Nessuna differenza.


1

Per me la modifica della versione del plugin non può risolvere il problema e la modifica della versione JDK non è sotto il mio controllo.

Tuttavia correre mvn cleanprima ha mvn tomcat6:deployrisolto questo problema.


0

Assicurati che la versione JDK nel tuo percorso di build e la versione specificata nel tag sorgente corrispondano allo stesso.

<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> `

Avevo il percorso di compilazione che puntava a jdk 1.7 e "1.6" nel tag sorgente, quando ho corretto la versione a 1.7 nel tag sorgente il problema è stato risolto.

Esegui mnv clean e mvn package.


0

Prova a eliminare tutta la cache. Quando ho eliminato la cartella di destinazione, funziona bene.

(La cartella di destinazione è dove Maven mette tutto il codice compilato)


0

Ho ricevuto lo stesso errore dopo aver aggiornato la mia versione java da 8 a qualche 8.x, l'ho risolto andando su pom quindi 1. clic destro> maven> aggiungi plug-in 2. digita org.apache.maven e poi cerca plugin di guerra aggiungilo e salva, quindi pulisci e installa. Dovrebbe funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.