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.