ChatGPT解决这个技术问题 Extra ChatGPT

无法构造 org.apache.maven.plugin.war.util.WebappStructure 因为它没有无参数构造函数

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

当我运行 install target 时出现上述错误,我该如何解决?

可能会影响您的 xstream 版本?

R
Raghuram

也许正在使用的 maven war plugin 版本不适用于 Java 7?根据 this issue(描述类似问题),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>

但不知道如何应用该补丁
@卡西姆。更新了答案以指示如何执行此操作。
仍然遇到同样的错误,maven-war-plugin:2.1.1 和 Java 7。有什么想法吗?编辑:似乎它是针对“战争”目标而固定的,而不是针对“爆炸”目标。 jira.codehaus.org/browse/MWAR-279
在 JRockIt JVM v1.6.0_6-R28.1.4-4.0.1 上看到的问题。通过从 Sun (u45) 迁移到 Java 6 JDK 的最新版本来解决。
现在有一个 2.4 版本的 maven-war-plugin 为我解决了这个问题。
S
SebastianH

我在做 mvn install 时遇到了这个问题。我通过先执行 mvn clean,然后执行 mvn install 来解决它。

使用 maven 2.1.1、JDK 1.7.0.45。


G
Gilles 'SO- stop being evil'

已确认:JDK7 与 Maven 2.x 会产生此错误。

我正在使用 Maven 2.2.1 和 JDK7 并收到此错误。我将 JDK 更改为 1.6 版,它工作正常。


K
Kresimir Plese

不要更改 JDK 版本和 Maven 版本,试试这个:

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

P
Philip Rodrigues

确认后,我在 maven 3.0.2 和 jdk 1.7.0_02 中遇到了同样的问题。在针对 jdk 1.6.0_30 运行后,它编译得很好。


S
Sam Hanley

我不认为版本是问题。我解决了删除我的目标文件夹(因为它包含 webapp-cache.xml)并再次进行 Maven 安装的问题。


G
Greg

Apache Maven WAR Plugin 3.0.0 解决了所有问题:

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

使用 jdk 1.6、1.7 还是 1.8 都没关系


A
A. Rick

这似乎与不兼容的插件、库和语言版本有关。

两年后,两个 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>

r
rkosegi

如果您使用 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>

谢谢,即使添加选项也有助于修复构建:)
j
jprism

我的日食开普勒有这个问题。一旦我搬到 4.4 (Luna) ,一切都消失了。必须是eclipse + maven嵌入的问题

我尝试了 JDK 1.7 和 1.8。没有不同。


Y
Yogesh Patil

对我来说,更改插件版本无法解决问题,更改 JDK 版本不在我的控制范围内。

但是在 mvn tomcat6:deploy 之前运行 mvn clean 解决了这个问题。


k
krodmannix

确保构建路径中的 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。


S
Sachin Ambalkar

尝试删除所有缓存。当我删除目标文件夹时,它工作正常。

(目标文件夹是 maven 放置所有编译代码的地方)


R
Rajan Chauhan

在我将我的 java 版本从 8 升级到某个 8.x 后,我遇到了同样的错误,我通过转到 pom 然后 1. 右键单击 > maven > 添加插件 2. 输入 org.apache.maven 然后查找战争插件添加并保存,然后清理并安装。它应该工作。


A
A T O M

使用这个插件

<plugin>

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

<version>3.2.2</version>

</plugin>

示例 pom.xml

pom.xml screenshot`


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅