
- Jrebel install install#
- Jrebel install update#
Much of IntelliJ setup and tips came from here.ĭownload JRebel from their website and install it where ever your prefer. I tried a few different ways to make this work, and the following setup is what ended up working and being the easiest in terms of development.
Debugging is done by running the app from IntelliJ using the maven Run configuration.
Jrebel install update#
We write code in IntelliJ 8 using the maven plugin to generate and update the project file. We debug the application in jetty running it with the maven run-jetty goal. The build is defined in a Maven build file. Most developers at my company use this setup: They actually provide a really good series of how-tos for different setups but it's hard to cover all of the bases. I get the feeling that the sticking point for JRebel in terms of adoption is that it can be tricky to configure. Check out the video from ZeroTurnAround's website for a quick demonstration of how it works. Beyond the obvious time-savings you get from not having to wait for your server to restart, I find it also helps me because I don't have breaks in concentration while I'm waiting for the server to restart. JRebel even support making Spring or SpringMVC configuration changes without a restart and it supports plugins so that similar functionality can be added for most tools in the java eco-system. No more restarts when you decide to add a new method. While you are running your software in debug mode, you can add or remove methods or classes and JRebel will swap these changes into the JVM. JRebel is a great tool that promises to increase your productivity in Java by enabling all sorts of HotSwaps not normally allowed by the JVM. But first, I should explain why bother install it all. I'm going to walk through the steps I took to get JRebel working with maven and Intellij 8 since I ran into a few snags along the way. I've changed the post to remove my workaround as it's not necessary any longer. With that fixed, JRebel works perfectly out of the box. This usually worked fine, but for some reason when running with JRebel hibernate would get confused and try to set the string value with the boolean from isX() which caused a buried IllegalArgumentException. The short version is that there was a String property with getX/setX methods but someone had also added an isX method that returned false if it was null. Update: In response to the request that I post the problem to forum at Zero Turnaround I was debugging the problem that I had using the intellij run/debug with JRebel buttons some more and found that it was caused by a problem with our code and hibernate.