IntelliJ热交换类,但不是JSF页面

时间:2015-10-24 10:05:21

标签: maven intellij-idea resources tomcat8 hotswap

首先,我想说StackOverflow上有很多页面,我尝试了所有与之相关的页面,但我做错了。

我将IntelliJ服务器设置为:

  • 服务器Tomcat 8
  • JDK 8u65
  • 的Maven
  • IntelliJ 14
  • 在运行/调试配置中,我已设置
    • VM选项:
      • 关于更新操作:更新资源
      • 关闭帧停止:更新类和资源
  • 发布前:构建xxx.war爆炸
  • 部署选项卡设置为部署xxx.war爆炸

如果我改变任何类的主体(例如返回的值),一切都很好,并按照我的预期热交换该类。

不幸的是,当我更改一些JSF资源时(在webapp目录下),没有任何反应。我查看了Tomcat临时目录,其中文件被移入,我只能看到旧文件。

我还尝试将webapp目录添加为IntelliJ中的资源,但它没有帮助。

我哪里有错?

我的项目结构:

    src
    └── main
        ├── java
        |    └── *.java
        ├── resources
        |    └── spring-web-context.xml    
        └── webapp
             ├── template.xhtml
             ├── ...
             └── index.xhtml

3 个答案:

答案 0 :(得分:1)

我决定对IntelliJ进行全新的安装,并采取一些JSF sample project

我发现所描述的设置正常,所以我的工作项目或IntelliJ的安装都有问题

答案 1 :(得分:0)

为了使资源热插拔工作,必须使用resp命名爆炸的工件。扩展(" war"," ear")。

例如,如果你的工件被称为ROOT.war,爆炸的工件也必须被称为ROOT.war,虽然第一个实际上是一个zip,第二个是一个文件夹。

这适用于我的JBoss服务器。

答案 2 :(得分:0)

我遇到了同样的问题,最终发现javax.faces.FACELETS_REFRESH_PERIOD被设置为-1。如this post中所述,将其更改为0即可。