Не вдається побудувати org.apache.maven.plugin.war.util.WebappStructure, оскільки він не має конструктора no-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

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

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

коли я запускаю встановлену вище ціль помилки, як я можу її вирішити?


можливо, вийде ваша версія 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. Будь-які ідеї? EDIT: Здається, це фіксовано для цілі "війни", а не для мети "вибуху". 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
На даний момент існує версія 2.4 плагіна maven-war, яка вирішила проблему для мене.
Бенджамін Сейлер

16

У мене була ця проблема при виконанні mvn install. Я вирішив це, зробивши mvn cleanперший, а потім a 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.


4

Apache Maven WAR Plugin 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>

Дякую, навіть додавання опцій допомогло вилікувати збірку :)
Гвідо У. Драгейм

2

Здається, це пов’язано з несумісною версією плагіна, бібліотеки та мови.

Через два роки та дві версії Java у мене виникла така сама помилка, коли я робив зразок проекту зі старої книги про Spring and 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 (Luna), все пішло. Мабуть, проблема з вбудованим затемненням + 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.


0

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

(Цільова папка, куди maven поміщає весь скомпільований код)


0

Я отримав ту ж помилку після того, як оновив свою версію Java з 8 до якихось 8.x, я виправив її, перейшовши на pom, то 1. клацніть правою кнопкою миші> maven> додайте плагін 2. введіть org.apache.maven, а потім знайдіть war плагін додайте його та збережіть, а потім просто почистіть та встановіть. Це має спрацювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.