Không thể tạo org.apache.maven.plugin.war.util.WebappStructure vì nó không có hàm tạo 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

Trình biên dịch Maven Plugin:

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

khi tôi chạy mục tiêu cài đặt xảy ra lỗi ở trên, làm thế nào tôi có thể giải quyết nó?


có thể gặp phiên bản xstream của bạn?
rogerdpack

Câu trả lời:


136

Có lẽ một phiên bản của plugin chiến tranh maven đang được sử dụng, không hoạt động với Java 7? Theo vấn đề này (mô tả một vấn đề tương tự),2.1.1 phiên bản plugin chiến tranh maven sẽ hoạt động.

Bao gồm những điều sau đây trong pom.xml của bạn

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>

nhưng không biết làm thế nào để áp dụng mà vá
TechFind

@kasim. Cập nhật câu trả lời để chỉ ra cách thực hiện việc này.
Raghuram

Vẫn gặp lỗi tương tự, maven-war-plugin: 2.1.1 và Java 7. Có ý kiến ​​gì không? CHỈNH SỬA: Có vẻ như nó được cố định cho mục tiêu 'chiến tranh', không phải cho mục tiêu 'bùng nổ'. jira.codehaus.org/browse/MWAR-279
BrunoJCM

Sự cố đã thấy trên JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Đã giải quyết bằng cách chuyển sang phiên bản Java 6 JDK mới nhất từ ​​Sun (u45).
8bitjunkie

4
Hiện tại đã có phiên bản 2.4 của maven-war-plugin đã giải quyết được vấn đề cho tôi.
Benjamin Seiller

16

Tôi đã gặp vấn đề này khi làm một mvn install. Tôi đã giải quyết nó bằng cách thực hiện mvn cleanđầu tiên, tiếp theo làmvn install .

Sử dụng maven 2.1.1, JDK 1.7.0.45.


9

Nó được xác nhận: JDK7 với Maven 2.x sẽ tạo ra lỗi này.

Tôi đang sử dụng Maven 2.2.1 và JDK7 và gặp lỗi này. Tôi đã thay đổi JDK thành phiên bản 1.6 và nó hoạt động tốt.


8

Thay vì thay đổi phiên bản JDK và phiên bản Maven, hãy thử cách này:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
    <version>2.3.2</version>
</plugin>

5

Đã xác nhận, tôi gặp phải vấn đề tương tự với maven 3.0.2 và jdk 1.7.0_02. Sau khi chạy với jdk 1.6.0_30, nó được biên dịch tốt.


4

Tôi không nghĩ rằng phiên bản là vấn đề. Tôi đã giải quyết được việc xóa thư mục đích của mình (vì nó chứa webapp-cache.xml) và thực hiện cài đặt lại Maven.


4

Apache Maven WAR Plugin 3.0.0 đã giải quyết tất cả các vấn đề:

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

Không thành vấn đề nếu bạn sử dụng jdk 1.6, 1.7 hay 1.8


2

nếu bạn đang sử dụng jdk 1.6, vui lòng thêm mục nhập plugin này vào pom.xml của bạn

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

Cảm ơn, thậm chí việc thêm các tùy chọn đã giúp sửa chữa bản dựng :)
Guido U. Draheim

2

Điều này chắc chắn có vẻ liên quan đến các phiên bản plugin, thư viện và ngôn ngữ không tương thích.

Hai năm và hai phiên bản Java sau đó, tôi đã gặp lỗi tương tự khi thực hiện một dự án mẫu từ một cuốn sách cũ hơn về Spring và Hibernate.

Tôi đã có thể giải quyết lỗi bằng cách nhận xét tất cả các thẻ phiên bản cho apache.maven.plugins và đặt phiên bản Java thành 1.8. Điều này cho tôi biết đâu là phiên bản mới nhất và tốt nhất của các thư viện, với một số cảnh báo từ Maven về việc thiếu các thẻ phiên bản. Nếu bạn quan tâm đến các cảnh báo, bạn có thể đặt các thẻ phiên bản thành phiên bản mới nhất và các cảnh báo từ Maven sẽ biến mất.

Tôi thực hiện mvn clean packagevà sau đó chỉ 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

Tôi gặp sự cố này với Kepler nhật thực của mình. Ngay sau khi tôi chuyển sang 4.4 (Luna), tất cả đã biến mất. Phải có vấn đề với eclipse + maven được nhúng

Tôi đã thử cả JDK 1.7 và 1.8. Không khác nhau.


1

Đối với tôi, việc thay đổi phiên bản plugin không thể giải quyết được vấn đề và việc thay đổi phiên bản JDK không nằm trong tầm kiểm soát của tôi.

Tuy nhiên chạy mvn cleantrước khi mvn tomcat6:deploygiải quyết vấn đề này.


0

Đảm bảo có phiên bản JDK trong đường dẫn Xây dựng của bạn và phiên bản được chỉ định trong thẻ nguồn khớp nhau.

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

Tôi có đường dẫn xây dựng trỏ đến jdk 1.7 và "1.6" trong thẻ nguồn, khi tôi sửa phiên bản thành 1.7 trong thẻ nguồn, vấn đề đã được giải quyết.

Thực hiện gói mnv clean và mvn.


0

Cố gắng xóa tất cả bộ nhớ cache của bạn. Khi tôi xóa thư mục đích, nó vẫn hoạt động tốt.

(Thư mục đích là nơi maven đặt tất cả mã đã biên dịch)


0

Tôi gặp lỗi tương tự sau khi nâng cấp phiên bản java của mình từ 8 lên 8.x, tôi đã sửa nó bằng cách vào pom rồi 1. nhấp chuột phải> maven> thêm plugin 2. nhập org.apache.maven rồi tìm kiếm War plugin thêm nó và lưu, sau đó chỉ cần dọn dẹp và cài đặt. Nó sẽ hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.