JRebel saves compile time. It "Instantly reload changes to Java classes" – that's the marketing talk anyway.
The theory is great. Anything has to be better than the randomness of Atlassian's FastDev or atlas-cli
, right? If it's really worth the hype, I want to use it with the Atlassian SDK and speed up my development time. Here's a short tutorial for JIRA development. Scroll down to the video if you want a demo.
Getting up and running...
Here's my quick "how to" get up and running.
Get the jrebel.jar
and save it somewhere - like /opt/jrebel/jrebel.jar
Add the jvmArgs
in the plugin to point at said file (and turn off fast dev)…
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-jira-plugin</artifactId>
<version>${amps.version}</version>
<extensions>true</extensions>
<configuration>
<productVersion>${jira.version}</productVersion>
<productDataVersion>${jira.data.version}</productDataVersion>
<enableFastdev>false</enableFastdev>
<log4jProperties>src/main/extra/log4j.properties</log4jProperties>
<jvmArgs>-javaagent:/opt/jrebel/jrebel.jar</jvmArgs>
</configuration>
</plugin>
Add the jrebel-maven-plugin
under build > plugins (see details of what does what here).
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>1.1.5</version>
<configuration>
<addResourcesDirToRebelXml>true</addResourcesDirToRebelXml>
<alwaysGenerate>true</alwaysGenerate>
<showGenerated>true</showGenerated>
</configuration>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Run atlas-run
or atlas-debug
on the command line, checking for any errors.
In Intelli-J, enable automatic compiling on code change by checking Make project build automatically:
Change something in your code & reload the page.
All is automatically updated. Immediately. No more waiting for code compile changes.
Check this quick video demo:
https://www.youtube.com/watch?v=gG8ONumNsyA
The good news – it's pretty cool. The bad news – JRebel costs around $365 per seat per year. But think of all the time you save.