Невозможно построить org.apache.maven.plugin.war.util.WebappStructure, поскольку у него нет конструктора без аргументов

93
[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

Плагин компилятора Maven:

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

когда я запускаю цель установки, указанную выше, возникает ошибка, как я могу ее решить?

TechFind
источник
возможно поднять вашу версию xstream?
rogerdpack

Ответы:

136

Возможно, используется версия плагина maven war , которая не работает с Java 7? Согласно этой проблеме (которая описывает аналогичную проблему) 2.1.1версия плагина maven war должна работать.

Включите в свой pom.xml следующее

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>
Рагурам
источник
но не знаю, как применить этот патч
TechFind
@kasim. Обновленный ответ, чтобы указать, как это сделать.
Raghuram
По-прежнему возникает та же ошибка, maven-war-plugin: 2.1.1 и Java 7. Есть идеи? РЕДАКТИРОВАТЬ: Кажется, он исправлен для цели «войны», а не для «взорванной» цели. jira.codehaus.org/browse/MWAR-279
BrunoJCM
Проблема наблюдается на JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Решено переходом на последнюю версию Java 6 JDK от Sun (u45).
8bitjunkie
4
На данный момент существует версия maven-war-plugin 2.4, которая решила проблему для меня.
Benjamin Seiller
16

У меня возникла эта проблема при выполнении файла mvn install. Я решил это, выполнив mvn cleanсначала, а затем mvn install.

Используя maven 2.1.1, JDK 1.7.0.45.

Себастьян
источник
9

Подтверждено: JDK7 с Maven 2.x выдаст эту ошибку.

Я использую Maven 2.2.1 и JDK7 и получаю эту ошибку. Я изменил JDK на версию 1.6, и он работает нормально.

Визу
источник
8

Вместо того, чтобы менять версии JDK и Maven, попробуйте следующее:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
    <version>2.3.2</version>
</plugin>
Кресимир Плезе
источник
5

Подтверждено, я столкнулся с той же проблемой с maven 3.0.2 и jdk 1.7.0_02. После запуска с jdk 1.6.0_30 он отлично скомпилировался.

Филип Родригес
источник
4

Не думаю, что проблема была в версии. Я решил удалить свою целевую папку (потому что она содержит webapp-cache.xml) и снова установить Maven.

JS
источник
4

Плагин Apache Maven WAR 3.0.0 решил все проблемы:

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

Неважно, используете ли вы jdk 1.6, 1.7 или 1.8

Грег
источник
2

если вы используете jdk 1.6, пожалуйста, добавьте эту запись плагина в свой 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>
Мотилал Даравату
источник
Спасибо, даже добавление опций помогло вылечить сборку :)
Guido U. Draheim
2

Это определенно связано с несовместимостью плагинов, библиотек и языковых версий.

Спустя два года и две версии Java у меня была такая же ошибка, когда я выполнял образец проекта из более старой книги по Spring и Hibernate.

Мне удалось устранить ошибку, закомментировав все теги версий для apache.maven.plugins и установив версию Java на 1.8. Это позволило мне узнать, какая версия библиотек является последней и самой лучшей, за счет некоторых предупреждений Maven об отсутствии тегов версии. Если вас интересуют предупреждения, вы можете установить теги версии как последнюю версию, и предупреждения от Maven должны исчезнуть.

Я казнил, mvn clean packageа потом просто 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

У меня была эта проблема с моим затмением Кеплер. Как только я перешел на 4.4 (Луна), все пропало. Должна быть проблема со встроенным eclipse + maven

Я пробовал JDK 1.7 и 1.8. Нет разницы.

призма
источник
1

Для меня изменение версии плагина не могло решить проблему, и изменение версии JDK не в моей власти.

Однако работа mvn cleanдо mvn tomcat6:deployэтого решила эту проблему.

Йогеш Патил
источник
0

Убедитесь, что версия JDK в пути сборки и версия, указанная в теге источника, совпадают.

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

У меня был путь сборки, указывающий на jdk 1.7 и «1.6» в исходном теге, когда я исправил версию до 1.7 в исходном теге, проблема была решена.

Выполните mnv clean и mvn package.

Vinay
источник
0

Попробуйте удалить весь свой кеш. Когда я удалил целевую папку, она работает нормально.

(Целевая папка - это место, где maven помещает весь скомпилированный код)

Сачин Амбалкар
источник
0

Я получал ту же ошибку после того, как обновил свою версию java с 8 до некоторой 8.x, я исправил ее, перейдя в pom, затем 1. щелкните правой кнопкой мыши> maven> добавить плагин 2. введите org.apache.maven и затем найдите war, добавьте его и сохраните, затем просто очистите и установите. Он должен работать.

Раджан Чаухан
источник