Não é possível construir org.apache.maven.plugin.war.util.WebappStructure porque não tem um construtor sem 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

Plug-in do compilador Maven:

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

Quando eu executo o destino de instalação acima ocorre um erro, como posso resolvê-lo?

TechFind
fonte
possivelmente colidir com sua versão do xstream?
rogerdpack de

Respostas:

136

Talvez uma versão do plugin maven war esteja sendo usada, que não funciona com o Java 7? De acordo com este problema (que descreve um problema semelhante), a 2.1.1versão do plugin maven war deve funcionar.

Inclua o seguinte em seu pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>
Raghuram
fonte
mas não sei como aplicar esse patch
TechFind
@kasim. Resposta atualizada para indicar como fazer isso.
Raghuram
Ainda obtendo o mesmo erro, maven-war-plugin: 2.1.1 e Java 7. Alguma ideia? EDIT: Parece que é fixo para o objetivo de 'guerra', não para o objetivo 'explodido'. jira.codehaus.org/browse/MWAR-279
BrunoJCM
Problema visto no JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Resolvido com a mudança para a última versão do Java 6 JDK da Sun (u45).
8bitjunkie
4
Agora existe uma versão 2.4 do plugin maven-war que resolveu o problema para mim.
Benjamin Seiller de
16

Eu tive esse problema ao fazer um mvn install. Resolvi isso fazendo um mvn cleanprimeiro, seguido por um mvn install.

Usando o maven 2.1.1, JDK 1.7.0.45.

SebastianH
fonte
9

Está confirmado: JDK7 com Maven 2.x produzirá este erro.

Estou usando o Maven 2.2.1 e o JDK7 e recebi este erro. Mudei o JDK para a versão 1.6 e está funcionando bem.

visu
fonte
8

Em vez de alterar as versões do JDK e do Maven, tente o seguinte:

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

Confirmado, encontrei o mesmo problema com maven 3.0.2 e jdk 1.7.0_02. Depois de correr contra o jdk 1.6.0_30 ele compilou perfeitamente.

Philip Rodrigues
fonte
4

Não acho que a versão fosse o problema. Resolvi excluir minha pasta de destino (porque ela contém webapp-cache.xml) e fazer a instalação do Maven novamente.

JS
fonte
4

Apache Maven WAR Plugin 3.0.0 resolveu todos os problemas:

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

Não importa se você usa o jdk 1.6, 1.7 ou 1.8

Greg
fonte
2

se você estiver usando o jdk 1.6, por favor, adicione esta entrada do plugin ao seu 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
fonte
Obrigado, mesmo adicionar as opções ajudou a curar a compilação :)
Guido U. Draheim
2

Isso definitivamente parece estar relacionado a versões incompatíveis de plugins, bibliotecas e idiomas.

Dois anos e duas versões de Java depois, tive o mesmo erro ao fazer um projeto de amostra de um livro antigo sobre Spring e Hibernate.

Consegui resolver o erro comentando todas as tags de versão para apache.maven.plugins e definindo a versão Java para 1.8. Isso me permitiu saber qual era a melhor e mais recente versão das bibliotecas, com o custo de alguns avisos do Maven sobre a falta de tags de versão. Se você se preocupa com os avisos, pode definir as tags de versão para a versão mais recente e os avisos do Maven devem desaparecer.

Eu executei mvn clean packagee depois acabou 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
fonte
2

Eu tive esse problema com meu eclipse Kepler. Assim que mudei para 4.4 (Luna), tudo se foi. Deve ser um problema com eclipse + maven incorporado

Tentei o JDK 1.7 e 1.8. Sem diferença.

jprisma
fonte
1

Para mim, alterar a versão do plugin não resolveu o problema e alterar a versão do JDK não está sob meu controle.

Porém correr mvn cleanantes mvn tomcat6:deployresolveu este problema.

Yogesh Patil
fonte
0

Certifique-se de que a versão do JDK em seu caminho de construção e a versão especificada na tag de origem correspondam à mesma.

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

Eu tinha o caminho de construção apontando para jdk 1.7 e "1.6" na tag de origem, quando corrigi a versão para 1.7 na tag de origem, o problema foi resolvido.

Execute o pacote mnv clean e mvn.

vinay
fonte
0

Tente excluir todo o seu cache. Quando eu excluí a pasta de destino, ele funciona bem.

(A pasta de destino é onde o maven coloca todo o código compilado)

Sachin Ambalkar
fonte
0

Eu estava recebendo o mesmo erro depois de atualizar minha versão java de 8 para 8.x, corrigi-lo indo para pom e 1. clique com o botão direito> maven> adicionar plugin 2. digite org.apache.maven e procure por plugin war adicione-o e salve, então apenas limpe e instale. Deve funcionar.

Rajan Chauhan
fonte