No se puede construir org.apache.maven.plugin.war.util.WebappStructure ya que no tiene un constructor sin argumentos

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

Complemento del compilador de Maven:

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

cuando ejecuto el error de instalación de destino anterior, ¿cómo puedo resolverlo?

TechFind
fuente
posiblemente golpear su versión xstream?
rogerdpack

Respuestas:

136

¿Quizás se está utilizando una versión del complemento de guerra de maven , que no funciona con Java 7? Según este problema (que describe un problema similar),2.1.1 versión del complemento maven war debería funcionar.

Incluya lo siguiente en su pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>
Raghuram
fuente
pero no sé cómo aplicar ese parche
TechFind
@kasim. Respuesta actualizada para indicar cómo hacer esto.
Raghuram
Sigo recibiendo el mismo error, maven-war-plugin: 2.1.1 y Java 7. ¿Alguna idea? EDITAR: Parece que está arreglado para el objetivo de 'guerra', no para el objetivo 'explotado'. jira.codehaus.org/browse/MWAR-279
BrunoJCM
Problema visto en JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Se resuelve moviendo a la última versión de Java 6 JDK de Sun (u45).
8bitjunkie
4
Por ahora hay una versión 2.4 de maven-war-plugin que me resolvió el problema.
Benjamin Seiller
16

Tuve este problema al hacer un mvn install. Lo resolví haciendo una mvn cleanprimera, seguida de unamvn install .

Usando maven 2.1.1, JDK 1.7.0.45.

SebastianH
fuente
9

Está confirmado: JDK7 con Maven 2.x producirá este error.

Estoy usando Maven 2.2.1 y JDK7 y obtuve este error. Cambié el JDK a la versión 1.6 y está funcionando bien.

visu
fuente
8

En lugar de cambiar las versiones de JDK y Maven, intente esto:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
    <version>2.3.2</version>
</plugin>
Kresimir Plese
fuente
5

Confirmado, encontré el mismo problema con maven 3.0.2 y jdk 1.7.0_02. Después de ejecutarse contra jdk 1.6.0_30, se compiló bien.

Philip Rodrigues
fuente
4

No creo que la versión fuera el problema. Resolví eliminar mi carpeta de destino (porque contiene webapp-cache.xml) y volver a instalar Maven.

JS
fuente
4

Apache Maven WAR Plugin 3.0.0 resolvió todos los problemas:

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

No importa si usa jdk 1.6, 1.7 o 1.8

Greg
fuente
2

si usa jdk 1.6, agregue amablemente esta entrada de complemento a su 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
fuente
Gracias, incluso agregar las opciones ayudó a curar la construcción :)
Guido U. Draheim
2

Esto definitivamente parece estar relacionado con versiones de complementos, bibliotecas e idiomas incompatibles.

Dos años, y dos versiones de Java más tarde, tuve este mismo error mientras hacía un proyecto de muestra de un libro anterior sobre Spring e Hibernate.

Pude resolver el error comentando todas las etiquetas de versión para apache.maven.plugins y estableciendo la versión de Java en 1.8. Esto me permitió saber cuál fue la última y mejor versión de las bibliotecas, con el costo de algunas advertencias de Maven sobre la falta de etiquetas de versión. Si le preocupan las advertencias, puede configurar las etiquetas de versión para que sean la última versión y las advertencias de Maven deberían desaparecer.

Ejecuté mvn clean packagey luego 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>
A. Rick
fuente
2

Tuve este problema con mi eclipse Kepler. Tan pronto como me mudé a 4.4 (Luna), todo desapareció. Debe haber un problema con eclipse + maven integrado

Probé tanto JDK 1.7 como 1.8. Ninguna diferencia.

jprisma
fuente
1

Para mí, cambiar la versión del complemento no pudo resolver el problema y cambiar la versión de JDK no está bajo mi control.

Sin embargo, ejecutar mvn cleanantes mvn tomcat6:deployresolvió este problema.

Yogesh Patil
fuente
0

Asegúrese de que la versión de JDK en su ruta de compilación y la versión especificada en la etiqueta de origen coincidan.

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

Tenía la ruta de compilación apuntando a jdk 1.7 y "1.6" en la etiqueta de origen, cuando corrigí la versión a 1.7 en la etiqueta de origen, el problema se resolvió.

Ejecute mnv clean y mvn package.

vinay
fuente
0

Intenta borrar todo tu caché. Cuando eliminé la carpeta de destino, funciona bien.

(La carpeta de destino es donde maven pone todo el código compilado)

Sachin Ambalkar
fuente
0

Recibí el mismo error después de actualizar mi versión de java de 8 a 8.x, lo arreglé yendo a pom y luego 1. clic derecho> maven> agregar complemento 2. escriba org.apache.maven y luego busque war plugin agréguelo y guárdelo, luego limpie e instale. Deberia de funcionar.

Rajan Chauhan
fuente