WildFly Maven 插件 - 设置空白上下文根

WildFly Maven Plugin - Setting Blank Context Root

我正在使用 Maven WildFly 插件并且在我的 pom.xml 中有以下内容(版本是 2.0.1.Final 并且路径指向本地 WildFly 8.2.1.Final 服务器)。

<build>
    <plugins>
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>${wildfly.version}</version>
            <configuration>
                <jboss-home>${wildfly.path}</jboss-home>
            </configuration>
        </plugin>
    </plugins>
</build>

应用程序正在部署为 localhost:8080/myArtifactId-myVersion,这是预期的,因为默认行为是使用 WAR 名称。但是,我想更改上下文根,以便可以通过 localhost:8080/ 访问应用程序(即我想要一个空白的上下文根)。

方法一:更改Pom配置

我可以在 pom.xml 中更改 finalName 构建设置,如下所示。

<build>
    <finalName>newContextRoot</finalName>
</build>

这会正确地将 url 更新为 localhost:8080/newContextRoot。然后我尝试将其更改为空白值。

<build>
    <finalName></finalName>
</build>

然而,这会导致我的 IDE 出现 Value must not be empty 错误,当我尝试构建它时失败,显示 Error assembling WAR: A zip file cannot include itself

方法二:更改插件配置

可能更好的解决方案是更改 Maven WildFly 插件本身的配置。在 <configuration> 部分下,我可以添加以下内容。

<name>anotherContextRoot.war</name>

这正确地将 url 更改为 localhost:8080/anotherContextRoot。因此,我再次尝试创建一个空白名称,如下所示。

<name>.war</name>

然而,这会导致 IllegalArgumentException: Empty name segment is not allowed for module

问题

有谁知道使上下文根为空的适当方法吗?提前致谢。

我设法解决了这个问题。除了将 jboss-web.xml 文件添加到 WEB-INF 目录外,您无需执行任何操作,如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>/</context-root>
    <default-encoding>UTF-8</default-encoding>
</jboss-web>

这会设置上下文根并覆盖插件正在执行的操作。

希望这对其他人有帮助。