Tidak dapat membuat org.apache.maven.plugin.war.util.WebappStructure karena tidak memiliki konstruktor 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

Plugin kompiler Maven:

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

ketika saya menjalankan target instal di atas terjadi kesalahan, bagaimana cara mengatasinya?

TechFind
sumber
mungkin menabrak versi xstream Anda?
rogerdpack

Jawaban:

136

Mungkin versi plugin maven war sedang digunakan, yang tidak berfungsi dengan Java 7? Sesuai masalah ini (yang menjelaskan masalah serupa),2.1.1 versi plugin perang maven seharusnya berfungsi.

Sertakan berikut ini di pom.xml Anda

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>
Raghuram
sumber
tetapi tidak tahu bagaimana menerapkan tambalan itu
TechFind
@bayu_joo Jawaban yang diperbarui untuk menunjukkan bagaimana melakukan ini.
Raghuram
Masih mendapatkan error yang sama, maven-war-plugin: 2.1.1 dan Java 7. Ada ide? EDIT: Tampaknya itu diperbaiki untuk tujuan 'perang', bukan untuk tujuan 'meledak'. jira.codehaus.org/browse/MWAR-279
BrunoJCM
Masalah terlihat di JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Diatasi dengan berpindah ke versi terakhir Java 6 JDK dari Sun (u45).
8bitjunkie
4
Saat ini sudah ada versi 2.4 dari maven-war-plugin yang memecahkan masalah saya.
Benjamin Seiller
16

Saya mengalami masalah ini saat melakukan mvn install. Saya menyelesaikannya dengan melakukan yang mvn cleanpertama, diikuti dengan a mvn install.

Menggunakan maven 2.1.1, JDK 1.7.0.45.

SebastianH
sumber
9

Sudah dikonfirmasi: JDK7 dengan Maven 2.x akan menghasilkan kesalahan ini.

Saya menggunakan Maven 2.2.1 dan JDK7 dan mendapatkan kesalahan ini. Saya mengubah JDK ke versi 1.6 dan berfungsi dengan baik.

visu
sumber
8

Alih-alih mengubah versi JDK dan versi Maven, coba ini:

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

Dikonfirmasi, saya mengalami masalah yang sama dengan maven 3.0.2 dan jdk 1.7.0_02. Setelah berjalan melawan jdk 1.6.0_30 itu dikompilasi dengan baik.

Philip Rodrigues
sumber
4

Menurut saya bukan versi masalahnya. Saya menyelesaikan menghapus folder target saya (karena berisi webapp-cache.xml) dan melakukan penginstalan Maven lagi.

JS
sumber
4

Apache Maven WAR Plugin 3.0.0 menyelesaikan semua masalah:

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

Tidak masalah jika Anda menggunakan jdk 1.6, 1.7 atau 1.8

Greg
sumber
2

jika Anda menggunakan jdk 1.6, silakan tambahkan entri plugin ini ke pom.xml Anda

<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
sumber
Terima kasih, bahkan menambahkan opsi membantu menyembuhkan build :)
Guido U. Draheim
2

Ini sepertinya terkait dengan plugin, pustaka, dan versi bahasa yang tidak kompatibel.

Dua tahun, dan dua versi Java kemudian, saya mengalami kesalahan yang sama saat melakukan proyek sampel dari buku lama tentang Spring dan Hibernate.

Saya dapat mengatasi kesalahan dengan mengomentari semua tag versi untuk apache.maven.plugins dan menyetel versi Java ke 1.8. Ini memberi tahu saya versi terbaru dan terbaik dari pustaka, dengan biaya beberapa peringatan dari Maven tentang kehilangan tag versi. Jika Anda peduli dengan peringatan, Anda dapat menyetel tag versi menjadi versi terbaru dan peringatan dari Maven akan menghilang.

Saya dieksekusi mvn clean packagedan kemudian baru saja 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
sumber
2

Saya mengalami masalah ini dengan gerhana Kepler saya. Segera setelah saya pindah ke 4.4 (Luna), semuanya hilang. Pasti ada masalah dengan eclipse + maven yang disematkan

Saya mencoba JDK 1.7 dan 1.8. Tidak ada perbedaan.

jprism
sumber
1

Bagi saya mengubah versi plugin tidak dapat menyelesaikan masalah dan mengubah versi JDK tidak ada dalam kendali saya.

Namun berjalan mvn cleansebelum mvn tomcat6:deploymemecahkan masalah ini.

Yogesh Patil
sumber
0

Pastikan untuk memiliki versi JDK di jalur Build Anda dan versi yang ditentukan di tag sumber cocok dengan yang sama.

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

Saya memiliki jalur build yang mengarah ke jdk 1.7 dan "1.6" di tag sumber, ketika saya mengoreksi versi ke 1.7 di tag sumber, masalahnya teratasi.

Jalankan paket mnv clean dan mvn.

vinay
sumber
0

Coba hapus semua cache Anda. Ketika saya menghapus folder target, itu berfungsi dengan baik.

(Folder target adalah tempat maven meletakkan semua kode yang dikompilasi)

Sachin Ambalkar
sumber
0

Saya mendapatkan error yang sama setelah saya mengupgrade versi java saya dari 8 menjadi 8.x, saya memperbaikinya dengan membuka pom lalu 1. klik kanan> maven> add plugin 2. ketik org.apache.maven dan kemudian cari plugin perang tambahkan dan simpan, lalu bersihkan dan instal. Ini harus berhasil.

Rajan Chauhan
sumber