【问题标题】:Maven exploded war to jboss deploy dirMaven 向 jboss 部署目录发起了战争
【发布时间】:2024-01-17 19:34:01
【问题描述】:

我目前正在使用 maven war 插件将我的战争部署到 jboss 目录:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warName>basic</warName>
                    <outputDirectory>${jboss.home}</outputDirectory>
                </configuration>
            </plugin>

当我执行 mvn clean install 时,这会将我的战争部署到 jboss 目录,但是当尝试将它与爆炸式战争 maven shell 命令mvn clean prepare-package war:exploded 结合时,我的爆炸式战争不会部署到 jboss 部署目录。

是否可以直接从 maven 将爆炸战争部署到 jboss 目录,而不是创建单独的脚本将爆炸战争目录从目标复制到 jboss 部署目录。

【问题讨论】:

    标签: java maven-2 jboss


    【解决方案1】:

    来自Maven War plugin - Usage 页面

    展开的 WAR 的默认目录是 target/&lt;finalName&gt;。可以通过指定 webappDirectory 参数来覆盖此默认目录。

    您可以将&lt;webappDirectory&gt;${jboss.home}&lt;/webappDirectory&gt; 添加到&lt;configuration&gt; 并查看是否有效。

    【讨论】:

    • 它将爆炸战争(WEB-INF 等)的内容复制到 jboss 目录,所以我在 jboss 部署目录中创建了我的 appname.war 并更新了 jboss.home 变量以指向 jboss.home/ appname.war 和文件直接在那里爆炸。简而言之,它有效,谢谢
    • 我不确定这是正确的方法。 是构建 webapp 的目录。所以例如当你想创建一个war文件并同时炸掉它时,首先执行第二个操作,然后将该目录的内容打包到war中。但是在构建之前没有清理阶段,所以如果你碰巧在那个部署目录中“忘记”了一些不必要的东西,它会在最后的战争中被打包,这可能会导致很多麻烦。您仍然可以在构建之前进行手动清理,但应格外小心地删除目标目录以外的任何内容。