Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting JRebel to work with 'mvn tomcat:run'

I was wondering if someone could point me in the direction of getting JRebel to work when I execute 'mvn tomcat:run' from the command line. I can get JRebel to work in my IDE (IntelliJ IDEA), but it feels a little clunky to be running inside of the IDE. When I run tests, I don't like having another process running right next to it - call it a habit.

More than that though, I've been having some server lock ups with JRebel as I try it out... and I don't want IDE to hang as a result. I've been teminating the process manually, and control is given back to IDEA... but it would be better to not have it running in IDEA at all.

I've tried googling this, but I haven't found how to incorporate JRebel with the tomcat plugin.

Thanks

like image 566
egervari Avatar asked Apr 26 '11 09:04

egervari


1 Answers

doesn't setting MAVEN_OPTS system variable help?

Just and example:

  1. mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
  2. cd my-webapp
  3. to pom.xml of your example add the following:
    <plugin>
      <groupId>org.zeroturnaround</groupId>
      <artifactId>jrebel-maven-plugin</artifactId>
      <executions>
       <execution>
        <id>generate-rebel-xml</id>
        <phase>process-resources</phase>
         <goals>
          <goal>generate</goal>
         </goals>
       </execution>
      </executions>
    </plugin>
  4. set MAVEN_OPTS=-javaagent:/path/to/jrebel.jar
  5. mvn tomcat:run

In the console you'll see message from JRebel like these:

JRebel: Directory 'C:\projects\my-webapp\target\classes' will be monitored for changes.
JRebel: Directory 'C:\projects\my-webapp\src\main\webapp' will be monitored for changes.

like image 145
Anton Arhipov Avatar answered Sep 22 '22 18:09

Anton Arhipov