blob: 4ff9bc741942e879769b761da1193061538fc50f [file] [log] [blame]
README.txt
This file exists at the top-level of the Roller source tree.
Roller is made up of the following Maven projects:
roller-project: Top level project
roller-core: Core Roller component
planet-business: Planet POJOs and business logic
planet-web: Planet webapp (under construction as before)
weblogger-business: Weblogger POJOs and business logic
weblogger-web: Roller Weblogger Web Classes, Servlets, Filters, etc.
weblogger-webapp: Roller Weblogger webapp, JSP pages, Velocity templates
weblogger-war-assembly: Assembly that builds the Roller WAR
weblogger-assembly: Assembly that builds Roller distro
test-utils: Test utils (e.g. start/stop Derby task)
To pull the latest trunk sources you need a Subversion client:
svn co https://svn.apache.org/repos/asf/roller/trunk roller_trunk
Building this version of Roller requires Apache Maven 3.
- How to build Roller: https://cwiki.apache.org/confluence/x/EM4
- To build and run Roller on Eclipse: https://cwiki.apache.org/confluence/x/EM4
---------------------------
BUILDING FOR APACHE TOMCAT
The normal Roller build creates a product suitable for use on Tomcat 6 or later,
which includes OpenJPA bytecode enhancement, OpenJPA and other Java EE jars.
After pulling the source tree and changing directory to its top level, as
indicated above, the following command will build and run all unit tests:
mvn clean
mvn install
After doing that, you should find the newly built Roller webapp, suitable
for use with Tomcat in weblogger-web/target/roller.
To build Roller release files, you do this:
cd weblogger-war-assembly
mvn -Dtomcat=true install
cd ..
cd weblogger-assembly
mvn -Dtomcat=true install
cd ..
After that, you'll find Roller distribution files in weblogger-assembly/target.
The Tomcat specific release files will have 'for-tomcat' in their names.
See the script build-tomcat-release.sh to see the sequence of commands used
to create Roller releases for Tomcat.
---------------------------
BUILDING FOR JAVA EE 6
The Tomcat build includes extra things that are not needed on a full Java EE
application server. In fact, the Tomcat release won't work on some Java EE
servers. If we leave those extra things out, Roller can run on most Java EE
servers.
If you add a 'javaee' flag to the Roller build invocation, you can create
Roller release files that will work on a Java EE 6 app server.
mvn clean
mvn -Djavaee=true install
cd weblogger-war-assembly
mvn -Djavaee=true install
cd ..
cd weblogger-assembly
mvn -Djavaee=true install
cd ..
When that finishes, you will find Roller distribution files in
weblogger-assembly/target. The Java EE specific release files will have
'for-javaee' in their names.
See the script build-javaee-release.sh to see the sequence of commands used
to create Roller releases for Java EE.
---------------------------
BUILDING FOR JBOSS 6
JBoss 6 is a Java EE server, but due to differences in JNDI naming, it needs
a separate build. If you add a 'jboss' flag to the Roller build invocation,
you can create Roller release files that will work on a JBoss 6 app server.
mvn clean
mvn -Djboss=true install
cd weblogger-war-assembly
mvn -Djboss=true install
cd ..
cd weblogger-assembly
mvn -Djboss=true install
cd ..
When that finishes, you will find Roller distribution files in
weblogger-assembly/target. The Java EE specific release files will have
'for-jboss' in their names.
See the script build-jbossee-release.sh to see the sequence of commands used
to create Roller releases for JBoss.
---------------------------
NOTES
1) Set MAVEN_OPTS to include your preferred server
If you always build for one server, then you might wish to define
MAVEN_OPTS to include your preferred server flag, for example:
export MAVEN_OPTS=${MAVEN_OPTS} -Dtomcat=true
2) Building other versions of Roller
If you wish to pull a branch other than the trunk, replace the word
"trunk" in both lines above with the appropriate branch name. Note that
versions of Roller before 5.0 have an Ant-based build. In general, you should
be able to follow instructions accompanying the sources that you pull in order
to build that version.