IntelliJ hot swapping classes, but not JSF pages

2019-01-29 11:00发布

First of all, I would like to say that there is plenty of pages on StackOverflow and I tried all I found related, but I am doing something wrong.

I have IntelliJ server set up to:

  • server Tomcat 8
  • JDK 8u65
  • Maven
  • IntelliJ 14
  • In Run/Debug configuration I have set
    • VM Options:
      • On Update action: Update resources
      • On frame deactivation: Update classes and resources
  • Before launch: Build xxx.war exploded
  • Deployment tab set to deploy xxx.war exploded

If I change the body of any class (e.g.returned value), everything is fine and it hot swap the class as I would expect.

Unfortunatelly when I change some JSF resources(under webapp directory), nothing happens. I looked into Tomcat temp directory, where files are moved into, and I can see only the old ones.

I also tried to add webapp directory as resources in IntelliJ, and it did not help.

Where do I have mistake?

My project structure:

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

3条回答
虎瘦雄心在
2楼-- · 2019-01-29 11:28

I had the same problem and eventually found that javax.faces.FACELETS_REFRESH_PERIOD was set to -1. As described in this post, changing it to 0 worked.

查看更多
对你真心纯属浪费
3楼-- · 2019-01-29 11:40

I decided to do fresh instalation of IntelliJ and take some JSF sample project.

I found out that the settings described is working, so there is something wrong either with my working project, or instalation of IntelliJ

查看更多
别忘想泡老子
4楼-- · 2019-01-29 11:41

In order hot-swap of resources to work, the exploded artifact must be named with resp. extension ("war", "ear").

For example if your artifact is called ROOT.war, the exploded artifact must also be called ROOT.war, although while the first one is actually a zip, the second one is a folder.

This works on my JBoss server.

查看更多
登录 后发表回答