Prerequisites
- JDK 5.0+ (J2SE 1.5.0+)
- Apache Maven (2.0.4+)
- Subversion (1.2+)
Windows Tip
Windows users are strongly encouraged to change the M2 local repository (the place where dependencies are downloaded) to a shorter path with no spaces, e.g. C:\.m2
.
Using a longer path may cause the build (and Geronimo itself) to behave very strangely when it hits the 260 char limit for filenames on Windows.
In order to change the m2 local repository go to %USERPROFILE%/.m2 and edit/create settings.xml
file to contain the following content:
<?xml version="1.0"?> <settings> <localRepository>C:\.m2</localRepository> </settings>
Checkout Geronimo
svn co https://svn.apache.org/repos/asf/geronimo/server/trunk server
Windows Tip
Windows users are strongly encouraged to checkout Geronimo into c:\g
.
Using a longer path may cause the build (and Geronimo itself) to behave very strangely when it hits the 260 char limit for filenames on Windows.
Advanced users may proceed to the For Advanced Users section.
Preparing to build for the first time
Chances are you will need to increase the heap size for Maven. Add the following lines to ~/.mavenrc
:
The following snips only set MAVEN_OPTS
if its not already set, so that you can override these values on the command line if needed.
# Increase the heap size Maven if [ "x$MAVEN_OPTS" = "x" ]; then MAVEN_OPTS=-Xmx512m fi
If you are using the SUN JDK, you may also need to increase the maximum permanent size as well as the heap:
# Increase the heap and max permanent size for Maven if [ "x$MAVEN_OPTS" = "x" ]; then MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m" fi
Windows Tip
Windows users should create mavenrc_pre.bat
under c:\documents and settings\<username>\mavenrc_pre.bat
or c:\mavenrc_pre.bat
depending on how the %HOME%
property is set on your system.
Variables will need to use the batch set syntax:
set <VARIABLE>=<VALUE>
Building
To build all changes incrementally:
mvn install
To perform clean builds, which are sometimes needed after some changes to the source tree:
mvn clean install
Building Stages
In some cases you may need to build Geronimo in stages, such as when building OpenEJB from source to pick up local changes. Most users will not need to do this, but its documented here for clarity.
To build modules, testsupport and maven-plugins:
mvn install -Dstage=bootstrap
To build apps, configs and assemblies:
mvn install -Dstage=assemble
Distribution binaries
The binaries for distribution can be found in the *.zip
and *.tar.gz
formats in following places:
server/assembles/geronimo-jetty-j2ee/target
server/assembles/geronimo-tomcat-j2ee/target
server/assembles/geronimo-jetty-minimal/target
server/assembles/geronimo-tomcat-minimal/target
Testing the assembly
To test an assembly, unpack and startup, as in:
gunzip -c assemblies/geronimo-jetty-j2ee/target/geronimo-jetty-j2ee*-bin.tar.gz | tar xf - ./geronimo-jetty-j2ee*/bin/startup.sh
And then shutdown:
./geronimo-jetty-j2ee*/bin/shutdown.sh
Or, use the geronimo-maven-plugin
to start the server:
mvn -Ptools geronimo:start
Windows Tip
Windows users may need to specify an alternative installDirectory
to avoid long path problems:
mvn -Ptools geronimo:start -DinstallDirectory=c:\g
And to stop, either CTRL-C
or from a separate terminal:
mvn -Ptools geronimo:stop
In order to run with the simple geronimo
prefix, you need to add a pluginGroup for org.apache.geronimo.plugins
to your ~/.m2/settings.xml
:
<?xml version="1.0"?> <settings> <pluginGroups> <pluginGroup>org.apache.geronimo.plugins</pluginGroup> </pluginGroups> </settings>
Windows Tip
Windows users will find ~/.m2/
under c:\documents and settings\<username>\.m2
.
If you don't want to add this to your local settings you can still enable the tools
profile, which will register the prefixes.
For Advanced Users
Please be sure to have read the details above and configured your environment accordingly before following these instructions.
Checkout openejb2 using:
svn co http://svn.apache.org/repos/asf/incubator/openejb/trunk/openejb2 openejb2
Building Geronimo with openejb2
Add a profile to the top level pom.xml
like this:
<profile> <id>build-all</id> <activation> <property> <name>all</name> </property> </activation> <modules> <module>testsupport</module> <module>modules</module> <module>maven-plugins</module> <module>applications</module> <module>openejb2</module> <module>configs</module> <module>assemblies</module> </modules> </profile>
Build geronimo and openejb2 from the top directory using:
mvn -Dall clean install
or:
mvn -Dall
Other Useful commands
To prepare Geronimo for IDEA:
mvn idea:idea
To prepare Geronimo for Eclipse, i.e to create .classpath and .project files
mvn eclipse:eclipse
Maven Bugs
There are a few bugs in Maven, which Geronimo has been forced to work around. The links to issues are here for reference:
$pom.version
and SNAPSHOTS - http://jira.codehaus.org/browse/MNG-2796- Build extensions (like car) - http://jira.codehaus.org/browse/MNG-1911 and (http://issues.apache.org/jira/browse/GERONIMO-2172)
- Plugin dependencies & DM - http://jira.codehaus.org/browse/MNG-2172
- .svn included in rars - http://jira.codehaus.org/browse/MRAR-13
Vote for these issues, so we can eventually drop our workarounds... and help improve the quality of Maven