This is still a work in progress...
Prerequisites
- J2SE SDK 1.4.2
- Apache Maven (2.0.4+)
- Ant (1.6.5+) - Used only to bootstrap
- Subversion (1.2+)
You must use J2SE 1.4.x... NOT 1.5. The build should fail early if you are using the wrong JDK.
Checkout Geronimo
svn co https://svn.apache.org/repos/asf/geronimo/server/trunk server
To avoid failures during downloads from the ibiblio repository, it's advisable to define a mirror for the central
m2 repository before running. Add the following lines to your ~/.m2/settings.xml
:
<?xml version="1.0"?> <settings> <mirrors> <mirror> <id>repo.mergere.com</id> <url>http://repo.mergere.com/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
Building for the first time
If you are building for the first time, a little patience is required.
You will need Ant installed and available in the search path of your shell. You will also need the Subversion svn
client installed and on your path.
cd server ./bootstrap
Warning
The bootstrap script will remove your local Maven2 repository cache and will take maybe 30 minutes or so to run... more or less depending on how fast your network connection is.
After this you can build all the components any time using:
mvn clean install
Chances are you will need to increase the heap size and maximum permission size for Maven. Add the following lines to ~/.mavenrc
:
# Increase the heap and max permission size for Maven MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m
Bootstrap w/o a full `bootstrap`
You can run the steps one by one (skipping steps as desired):
bootstrap clean
bootstrap specs
bootstrap modules
bootstrap openejb2
bootstrap assemble
Or you can use the minimal
bootstrap, which avoids a full repo cleaning and does not download and build any thirdparty sources:
./bootstrap minimal
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
Pending Issues
There are still a few remaining issues which need to be sorted out.
Some use of version properties in pom.xml files are inconsistent due to selective use by child pom's that can not easily make use of the <dependencyManagement>
section; which is the desired end result. It will take some time to refactor to get this really finished.
Some minor work is needed to get the jsp/servlet examples happy:
Some (2 actually) test failures need to have some attention given to them, tracked be:
- https://issues.apache.org/jira/browse/GERONIMO-2210
- https://issues.apache.org/jira/browse/GERONIMO-2211
Some more work also needs to be done on the Maven-2 generated site, but there is most of it here already:
Must see
Go the Geronimo :: Modules link, pick any module and see it's Project Reports
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
What is Genesis?
Please see Genesis Overview for more information about Genesis.