Child pages
  • Getting started with Grouper development
Skip to end of metadata
Go to start of metadata


The purpose of this document is to describe the necessary set of steps needed to assist a developer reach a functional grouper deployment from the grouper source tree.


1. The environment must have the Java Development Toolkit installed. Ensure that JAVA_HOME is set to the JDK installation folder. JDK 6~8 should all work. 

2. The environment must have Apache Tomcat installed. Ensure that CATALINA_HOME is set to the Tomcat installation folder. Tomcat 6 is the preferred version. 

Source Checkout

Checkout the grouper source from the project source repository:

git checkout


1. Navigate to grouper-ui\webapp\WEB-INF\ and specify the path to your Tomcat installation folder.


2. From the grouper root directory, execute:

ant all

The result will be GroupsManager.war that will exist inside the ${domain} directory.


1. Modify your ${server}/conf/tomcat-users.xml file to include the following snippet:

<role rolename="grouper_user"/>
<user username="GrouperSystem" password="GrouperSystem" roles="grouper_user"/>

2. Open up a command prompt, and navigate to grouper/grouper directory and execute:



This will spin up an HSQL database instance. Keep this running in the background.

3. Navigate to http://localhost:8080/GroupsManager, authenticate with GrouperSystem/GrouperSystem and you should see the grouper home page.


1. In your Tomcat\bin directory, locate the startup.[bat|sh] and include the following lines at the top:

set JPDA_TRANSPORT=dt_socket

2. In your IDE (Eclipse or IntelliJ IDEA) set up a remote debugger that would connect to port 8000. Here is a snapshot of what it would look like in IDEA:

3. Restart Tomcat. In the tomcat log, you should see an entry that says:

Listening for transport dt_socket at address: 8000

4. In your IDE, attach the debugger to the new remote debugger (Tomcat above) you created by starting a new debug session. 

5. Set breakpoints and interact with grouper. The debugger should halt on each breakpoint. 

  • No labels