当前位置: 首页 > 面试题库 >

如果我将其配置为不会因缺少web.xml而失败,为什么maven-war-plugin未能针对web.xml失败?

丘华翰
2023-03-14
问题内容

这是一个挑战:为什么此构建失败?

我已经配置了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为prepare-war。Maven对打包类型的项目运行war插件的默认执行war。默认执行具有ID default- war。由于当前已配置POM,因此war目标运行了两次。

如果您查看错误消息:

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

您可能会看到括号中失败的html" target="_blank">执行ID (default-war)。如果将执行ID更改为default- war您的问题将消失,并且您将不再有两次执行战争目标的执行。



 类似资料:
  • 我在让Spark Cassandra连接器在Scala中工作时遇到问题。 我正在使用这些版本: 斯卡拉 2.10.4 火花芯 1.0.2 卡桑德拉-节俭 2.1.0 (我安装的卡桑德拉是 v2.1.0) cassandra-clientutil 2.1.0 卡桑德拉驱动器核心 2.0.4 (推荐用于连接器? 火花-卡桑德拉-连接器 1.0.0 我可以连接并与卡桑德拉(没有火花)交谈,我可以与火花(

  • 正如我在标题中所述,我只是不明白为什么这个函数会抛出<code>std::bad_alloc</code>。如果我们看一看cppreference,所有三种可能的实现都是如有人所假设的,并且看起来没有特别需要动态内存分配。

  • 我有一个非常简单的Java web应用程序,其中有2个jsp文件(索引和测试)。部署描述符应该提供一些线索: 这个项目是由Maven-WebApp原型创建的,POM中只有一个依赖项: 我在IntelliJ中有两个运行配置,一个用于Tomcat 7.0,一个用于Glassfish 3.1.2.2 当pom如上时,应用程序可以很好地部署到两个服务器上。但当我移除: 部署在Tomcat中失败,但在Gla

  • 我需要替换 我用了 但它抛出异常 java.lang.IllegalArgumentException: Illegal group reference

  • 问题内容: 我重置了本地flask环境,但是没有通过捕获它的依赖项,pip freeze然后再将其删除。因此,我不得不重新安装整个堆栈的最新版本。 现在,我突然无法使用表单进行验证了。Flask声称CSRF将丢失。 第一次发送Get邮件时,我按预期检索了一个空邮件。现在,我填写表格并提交并form.errors显示: 真奇怪 我想知道Flask-WTF是否已更改,并且使用错误。 我可以清楚地看到存

  • 问题内容: 我有一个名为“ FechasFirmaHorometros”的视图,定义为 我有一个名为[RespuestaPreguntaHorometrosFecha]的函数定义为 在调试使用该函数的另一个存储过程时,我一直在碰到上述函数时收到此消息 但是我可以自由地做类似的事情 为什么会发生这种情况,我该如何解决或解决呢? 问题答案: 由于某种原因,我认为这是某种类型的字符串列。您应该解决该问题