인수가없는 생성자가 없으므로 org.apache.maven.plugin.war.util.WebappStructure를 생성 할 수 없습니다.


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 2013

답변:


136

Java 7에서 작동하지 않는 maven war 플러그인 버전이 사용 중일 수 있습니다 . 에 따라 이 문제 (비슷한 문제를 설명하는), 2.1.1메이븐 전쟁 플러그인의 버전은 작동합니다.

pom.xml에 다음을 포함하십시오.

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

하지만 패치를 적용하는 방법을 모릅니다
TechFind

@kasim. 이를 수행하는 방법을 나타 내기 위해 답변을 업데이트했습니다.
Raghuram 2011 년

여전히 동일한 오류, 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에서 보이는 문제. Sun (u45)에서 Java 6 JDK의 최신 버전으로 이동하여 문제가 해결되었습니다.
8bitjunkie 2014

4
지금까지 나를 위해 문제를 해결 한 2.4 버전의 maven-war-plugin이 있습니다.
Benjamin Seiller 2014

16

나는 mvn install. 나는 mvn clean첫 번째를 수행하고 mvn install.

maven 2.1.1, JDK 1.7.0.45 사용.


9

확인되었습니다. Maven 2.x를 사용하는 JDK7에서이 오류가 발생합니다.

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>

덕분에, 심지어 빌드 :) 치료하는 데 도움이 옵션을 추가
귀도 U. Draheim

2

이것은 확실히 호환되지 않는 플러그인, 라이브러리 및 언어 버전과 관련된 것으로 보입니다.

2 년 후 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> 플러그인 추가 2. org.apache.maven에 입력 한 다음 전쟁 플러그인을 추가하고 저장 한 다음 정리하고 설치하십시오. 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.