2016-07-27 51 views
0

我正在使用Heroku部署我的eclipse項目。但是,當我嘗試運行我的項目作爲maven構建時,我得到一個錯誤。我到處尋找,但找不到解決方案。這是我得到的錯誤。組裝WAR日蝕時出錯

BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.497 s 
[INFO] Finished at: 2016-07-27T15:12:17-04:00 
[INFO] Final Memory: 20M/274M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project maven-demo: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project maven-demo: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:352) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) 
    at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:193) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
    ... 24 more 
Caused by: org.codehaus.plexus.archiver.ArchiverException: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) 
    at org.codehaus.plexus.archiver.war.WarArchiver.initZipOutputStream(WarArchiver.java:148) 
    at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:309) 
    at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:211) 
    at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:897) 
    at org.apache.maven.archiver.MavenArchiver.createArchive(MavenArchiver.java:582) 
    at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:243) 
    at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:177) 
    ... 26 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

這是我的pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.codebind</groupId> 
    <artifactId>maven-demo</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 
    <dependency> 
    <groupId>com.twilio.sdk</groupId> 
    <artifactId>twilio-java-sdk</artifactId> 
    <version>(6.0,6.9)</version> 
    </dependency> 
    <dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.4</version> 

</dependency> 
</dependencies> 

<build> 

    <plugins> 
     <plugin> 
     <groupId>com.heroku.sdk</groupId> 
     <artifactId>heroku-maven-plugin</artifactId> 
     <version>1.0.3</version> 
     <configuration> 
    <appName>com.codebind</appName> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <failOnMissingWebXml>false</failOnMissingWebXml> 
    <!-- <webXml>src\main\webapps\WEB-INF\web.xml</webXml> --> 
    <processTypes> 
    <web>java $JAVA_OPTS -cp target/classes:target/dependency/* Main</web> 
    </processTypes> 

</configuration> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

在此先感謝

回答

0

heroku-maven-plugin插件配置似乎與maven-war-plugin混合。雖然該節的根部爲heroku-maven-plugin,但該配置包含對maven-war-plugin的引用,而不是在該節的根部添加maven-war-plugin。 (Maven's'super pom')構建/打包戰爭。Maven繼續使用它自己的maven-war-plugin參考(通過Maven的'超級pom')來構建/打包戰爭。Maven不會使用它的maven-war-plugin參考。 ..和插件是什麼扔錯誤。

如果您想在未找到web.xml時重新配置maven-war-plugin以使其不會失敗,則需要將POM中的<maven-war-plugin>移動到未嵌套在heroku-maven-plugin內的位置並將<failOnMissingWebXml>false</failOnMissingWebXml>移動到maven-war-plugin的<configuration>元素。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <failOnMissingWebXml>false</failOnMissingWebXml> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>com.heroku.sdk</groupId> 
    <artifactId>heroku-maven-plugin</artifactId> 
    <configuration> 
    ... 
    </configuration> 
</plugin> 
+0

工作!非常感謝! – srsxyz