http://archive.openmrs.org/wiki/Using_the_M2Eclipse_Maven_Plugin_In_Eclipse
https://wiki.openmrs.org/display/docs/Using+the+M2Eclipse+Maven+Plugin+In+Eclipse#UsingtheM2EclipseMavenPluginInEclipse-HowtoRunWebApplication
- Eclipse 3.4+
- Apache Maven 2.2.1 or later
- M2Eclipse plugin
- Checkout Source and Create Project
- Develop with Maven
- How to run the build
- How to run Junit
- How to Run Web Application
- How to Profile Web Application with YourKit
- How to Debug Web Application
- JVM Hotswap
- Hot Deploy
- Use JRebel
Checkout Source and Create Project
- File → New → Project → Checkout Maven Projects From SCM
- For SCM, choose 'svn' and browse to the project (http://svn.openmrs.org/openmrs/trunk )
- In older versions of the m2eclipse Eclipse plugin (prior to 0.11.0), you have an option to place all modules within a single project; this feature is deprecated as of m2eclipse 0.11.0 .
Click Advanced, and uncheck "separate projects for modules" (if that doesn't exist, change m2eclipse setting in Window → Preferences → Maven → Support multiple maven modules) - Click Finish to download and create the Maven project(s).
Develop with Maven
There are five projects shown in the workspace: openmrs, openmrs-api, openmrs-test, openmrs-tools, openmrs-web, and openmrs-webapp. The openmrs project is a parent project. When we run any maven goal on the parent project, it will run the same goal on its children, according to the dependency order. A Maven menu item is added on the context menu, which lets you modify the pom.xml, manage dependencies and plugins, etc. Common maven goals are also added on the menu items Run As and Debug As . You can also create your own Maven Run Configurations.
How to run the build
- Right click the openmrs project to bring up the context menu, select "Run as → Maven build..." (notice the "..." at the end)
- Enter the Goals: clean install
- Make sure the Maven Runtime at the bottom is correct for your installation (Configure for Embedded/External as necessary)
- Select Apply, then Run
- The build output will be displayed in the Console.
- The output contains links to the results of each test.
To re-run the build, right click the root project to bring up the context menu, select "Run as -> Maven build." If you have multiple configurations, select the "clean install" one to run.
To manage these configurations, right click the root project to bring up the context menu, select "Run as -> Run configurations...". Select the configuration under the Maven Build section.
How to run Junit
If you want to run all tests across modules, select Openmrs project and right click to bring context menu, select "Run As → Maven test"
If you want to run all tests in one module, select that project and right click to bring context menu, select "Run As → Maven test"
If you want to run a single test class,right click on test class and select "Run As → Junit test"
How to Run Web Application
Create a run configuration by click "Run → Run Configurations", select Maven Build and click "New launch configuration", type Name "OpenMRS", select working directory to be the root of webapp project, type goal "jetty:run" and save. Now you select "OpenMRS" and run or debug it.
On the JRE tab, in the VM parameters box, you will want to put in your memory parameters, e.g.
-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:NewSize=128m
|
See Troubleshooting Memory Errors or Performance Tuning or Increasing Memory for Maven
Current configuration of Jetty is that it will reload static resources like jsp, javascript files etc. If there is any java class change, It will require to run maven:compile goal (if auto build is not enabled) and restart Jetty.
How to Profile Web Application with YourKit
Set up a run configuration as specified in "How to Run Web Application" but in the JRE tab, set the -agentpath VM option as specified in the YourKit docs . Common values:
- Linux x86, 32-bit Java: -agentpath:<profiler directory>/bin/linux-x86-32/libyjpagent.so
- Mac OS X: -agentpath:<profiler directory>/bin/mac/libyjpagent.jnilib
- Windows, 32-bit Java: -agentpath:<profiler directory>\bin\win32\yjpagent.dll
(This assumes you have YourKit installed already.)
How to Debug Web Application
Jetty plugin can pick up any changes of static resources, so changes of jsp, property or css files don't require a restart. However changes of java class will have to restart. The following solutions could help in some situations.
JVM Hotswap
![]() |
Not yet documented. |
Hot Deploy
![]() |
Not yet documented. |
Use JRebel
Here is how you configure JRebel to work with OpenMRS
- Download JRebel and install it. http://www.zeroturnaround.com/jrebel/current/
- Install JRebel plugin for Eclipse and restart.
http://archive.openmrs.org/wiki/Image:Eclipse-jrebel1.jpg - Configure JRebel plugin for Eclipse.
http://archive.openmrs.org/wiki/Image:Eclipse-jrebel2.jpg
Specify location of JRebel installation
http://archive.openmrs.org/wiki/Image:Eclipse-jrebel3.jpg
Tick "Use Step filters" and also add com.zeroturnaround.* and org.zeroturnaround.* to the filters Tick "filter synthetic fields"
- Configure JRebel Agent Setting provided by JRebel installation
http://archive.openmrs.org/wiki/Image:Eclipse-jrebel4.jpg
Untick "Spring Framework Plugin" - Change "OpenMRS" Run configuration to increase Permgen and enable JRebel.
http://archive.openmrs.org/wiki/Image:Eclipse-jrebel5.jpg - Run or Debug "OpenMRS"
When you change any java classes, just wait for eclipse auto build to finish, reload the web page, and JRebel will reload the class for you.