java – 为什么maven-war-plugin失败的web.xml失败,如果我配置它不失败在缺少web.xml?

前端之家收集整理的这篇文章主要介绍了java – 为什么maven-war-plugin失败的web.xml失败,如果我配置它不失败在缺少web.xml?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个挑战:为什么这个构建失败?

我已经配置了Maven的maven-war-plugin不会在一个缺失的web.xml文件中失败,似乎:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <executions>
            <execution>
                <id>prepare-war</id>
                <phase>prepare-package</phase>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <archiveClasses>false</archiveClasses>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix />
                        </manifest>
                        <manifestEntries>
                            <Implementation-Build>${build.number}</Implementation-Build>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Built-By>${user.name}</Built-By>
                            <Built-OS>${os.name}</Built-OS>
                            <Build-Date>${build.date}</Build-Date>
                        </manifestEntries>
                    </archive>
                    <webResources>
                        <resource>
                            <!-- this is relative to the pom.xml directory -->
                            <directory>./target/dist</directory>
                        </resource>
                    </webResources>
                </configuration>
            </execution>
        </executions>
    </plugin>

但是尽管有这样的配置,它仍然像以下这样失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.4:war (default-war) on project com.specktro.orchid.operations.portal.frontend: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

我实际上没有web.xml,所以我需要它组装没有它的战争.

我尝试添加一个假的< webXml> none< / webXml>进入配置,但是没有改变任何东西…

我失踪了什么

解决方法

POM中的执行ID是准备战争.对于包装类型为war的项目,Maven运行自己的默认的war插件.默认执行有ID default-war.由于POM目前配置,战争目标是两次.

如果您看到错误信息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.4:war (default-war) on project com.specktro.orchid.operations.portal.frontend: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

您可能会看到执行ID在括号(default-war)中失败.如果您将执行ID更改为default-war,您的问题将会消失,您将不会再执行两次战争目标.

猜你在找的Java相关文章