IntelliJ + Tomcat + Spring-Loaded

sdo*_*ass 12 spring tomcat spring-mvc intellij-idea spring-loaded

我想试试Spring Source的"Spring Loaded"类重载代理,Tomcat通过IntelliJ运行.

https://github.com/SpringSource/spring-loaded

我已经将JVM参数添加到我的Tomcat运行配置中,并且我的webapp启动时没有错误,似乎表现正常.

我不确定如何触发类重新加载.我只需要编译我修改的类吗?我试过了,但似乎没有用.我是否需要更新Tomcat并部署类和资源?这似乎也不起作用......?

任何具体的配置细节将不胜感激.

编辑:更多信息,我认为我的问题可能与使用两个模块有关,一个是核心代码库,另一个是webapp.我使用Maven,一个配置为jar项目,另一个配置为war项目.IntelliJ为爆炸的战争设置了神器,以使用jar模块的jar文件.我已经尝试切换Artifact配置,将jar模块的编译输出合并到WEB-INF/classes中.现在我在target/webapp/WEB-INF/class/etc中看到.class文件.但我不确定如何在编辑时让IntelliJ更新特定的类文件.

小智 5

如果您将以下jvm参数(如springloaded页面中所述)添加到tomcat中

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass
Run Code Online (Sandbox Code Playgroud)

你应该没事.对于您正在测试的webapp,在tomcat中禁用自动重新加载可能会有所帮助.对于server.xml中的exmaple:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Context docBase="projekt" path="/projekt" reloadable="false" ...
Run Code Online (Sandbox Code Playgroud)

这确保了只有springloaded类加载器才会加载更改的类.