IntelliJ IDEA - 运行/调试不复制资源

时间:2018-04-10 07:02:39

标签: maven intellij-idea jboss

我有一个打包为WAR的maven项目。 POM看起来如下所示:

<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/maven-v4_0_0.xsd">
    <artifactId>my_app</artifactId>
    <packaging>war</packaging>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
           <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
              ...
            </plugin>
            ...
        </plugins>
    </build>
</project>

当我手动运行命令mvn package时,会生成一个带有目录target/my_app的WAR,其中我的Web资源(JSP,CSS,JS,图像等)被复制到其中。如果上传到Application Server,生成的WAR可以正常工作。

但是,如果我使用IntelliJ IDEA的运行/调试配置(配置为将WAR部署到应用服务器(如果重要的是JBoss))来执行相同操作,我也看不到网络资源。 target/my_app目录中只存在配置XML和编译类。应用程序服务器启动完全没有任何错误,并且WAR已成功部署,但是当它返回404时我无法访问它。

如何使用IntelliJ IDEA的 Run / Debug 构建和手动上传WAR时,我能够获得什么?

更新

在发布任务之前:

  • 构建
  • 构建&#39; my_app:战争爆炸&#39;工件

2 个答案:

答案 0 :(得分:1)

安装2018.1 IntelliJ IDEA后我遇到了同样的问题。回到2017.3版本解决了这个问题。它看起来这是新版本的一个错误,因为我对两者都有相同的设置。希望这有帮助。

答案 1 :(得分:1)

我有一个类似的问题,当我从命令行运行时,它正在复制所有资源(例如JSP等),但是Intellij没有复制它。

作为解决方法的一部分,我添加了“ war:exploded”和“ compile”的目标,然后解决了我的问题。

因此在Maven配置中,命令行参数将是(可能与您不同): 干净的编译战争:爆炸

屏幕截图以供参考。 enter image description here