ไม่สามารถสร้าง org.apache.maven.plugin.war.util.WebappStructure ได้เนื่องจากไม่มีตัวสร้าง no-args


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>

เมื่อฉันเรียกใช้เป้าหมายการติดตั้งข้างต้นเกิดข้อผิดพลาดฉันจะแก้ไขได้อย่างไร


อาจจะชนรุ่น 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

@ กาซิม. คำตอบที่อัปเดตเพื่อระบุวิธีการทำเช่นนี้
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


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>


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>

ขอบคุณแม้การเพิ่มตัวเลือกก็ช่วยในการรักษาโครงสร้าง :)
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 (Luna) หมดเลย ต้องเป็นปัญหากับการฝัง 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


0

ลองลบแคชทั้งหมดของคุณ เมื่อฉันลบโฟลเดอร์เป้าหมายมันก็ใช้ได้ดี

(โฟลเดอร์เป้าหมายคือที่ที่ maven ใส่โค้ดที่คอมไพล์ทั้งหมด)


0

ฉันได้รับข้อผิดพลาดเดียวกันหลังจากที่ฉันอัปเกรดเวอร์ชัน java จาก 8 เป็น 8.x ฉันแก้ไขโดยไปที่ pom จากนั้น 1. คลิกขวา> maven> add plugin 2. พิมพ์ org.apache.maven จากนั้นค้นหา ปลั๊กอินสงครามเพิ่มและบันทึกจากนั้นทำความสะอาดและติดตั้ง มันควรจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.