================================================================================ | |
Licensed to the Apache Software Foundation (ASF) under one or more | |
contributor license agreements. See the NOTICE file distributed with | |
this work for additional information regarding copyright ownership. | |
The ASF licenses this file to You under the Apache License, Version 2.0 | |
(the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
================================================================================ | |
==================================================== | |
Building The Apache Tomcat 6.0 Servlet/JSP Container | |
==================================================== | |
This subproject contains the source code for Tomcat 6.0, a container that | |
implements the Servlet 2.5 and JSP 2.1 specifications from the Java | |
Community Process <http://www.jcp.org/>. | |
Note: If you just need to run Apache Tomcat, it is not necessary to build | |
it. You may simply download a binary distribution. It is cross-platform. | |
Read RUNNING.txt for the instruction on how to run it. | |
In order to build a binary distribution version of Apache Tomcat from a | |
source distribution, do the following: | |
(0) Download and Install a Java Development Kit | |
* If the JDK is already installed, skip to (1). | |
* Download a Java Development Kit (JDK) of Java SE version 5 from | |
http://www.oracle.com/technetwork/java/javase/downloads/index.html | |
or from another JDK vendor. | |
Note regarding versions of Java later than Java SE 5: | |
As documented elsewhere, one of components in Apache Tomcat includes | |
a private copy of the Apache Commons DBCP library. The source code | |
for this library is downloaded, processed by the build script | |
(renaming the packages) and compiled. | |
Due to changes in JDBC interfaces implemented by the library between | |
versions of Java SE specification, the library has to target specific | |
version of Java and can be compiled only with the JDK version | |
implementing this version of specification. | |
See Apache Commons DBCP project web site for more details on | |
available versions of the library and its requirements, | |
http://commons.apache.org/dbcp/ | |
It is possible to use later versions of JDK to build Tomcat 6.0, but the | |
building of that component (tomcat-dbcp.jar) will be skipped and a | |
warning will be printed. | |
* Install the JDK according to the instructions included with the release. | |
* Set an environment variable JAVA_HOME to the pathname of the directory | |
into which you installed the JDK release. | |
(1) Install Apache Ant 1.6.x on your computer | |
* If Apache Ant 1.6.x is already installed on your computer, skip to (2). | |
* Download a binary distribution of Ant 1.6.x from: | |
http://ant.apache.org/bindownload.cgi | |
* Unpack the binary distribution into a convenient location so that the | |
Ant release resides in its own directory (conventionally named | |
"apache-ant-[version]"). For the purposes of the remainder of this document, | |
the symbolic name "${ant.home}" is used to refer to the full pathname of | |
the release directory. | |
* Create an ANT_HOME environment variable to point the directory | |
${ant.home}. | |
* Modify the PATH environment variable to include the directory | |
${ant.home}/bin in its list. This makes the "ant" command line script | |
available, which will be used to actually perform the build. | |
(2) Building Tomcat 6.0 | |
(2.1) Checkout or obtain the source code for Tomcat 6.0 | |
* Tomcat 6.0 SVN repository URL: | |
http://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/ | |
* Download a source package from: | |
http://tomcat.apache.org/download-60.cgi | |
* Checkout the source using SVN, selecting a tag for released version or | |
trunk for the current development code, or unpack a source package. The | |
location where the source has been placed will be referred as | |
${tomcat.source}. | |
(2.2) Building | |
* Go to that directory, and do: | |
cd ${tomcat.source} | |
ant download | |
ant | |
* WARNING: Running "ant download" command will download libraries required | |
to build Tomcat to the /usr/share/java directory. On a typical Linux or | |
MacOX system an ordinary user will not have access to write to this | |
directory, and, even if you do, it may not be appropriate for you to | |
write there. | |
On Windows this usually corresponds to the "C:\usr\share\java" | |
directory, unless Cygwin is used. Read below to learn how to customize | |
the directory used to download the binaries. | |
* NOTE: Users accessing the Internet through a proxy must use a properties | |
file to indicate to Ant the proxy configuration. Read below. | |
* The build can be controlled by creating a ${tomcat.source}/build.properties | |
file, and adding the following content to it: | |
# ----- Proxy setup ----- | |
# Uncomment if using a proxy server | |
#proxy.host=proxy.domain | |
#proxy.port=8080 | |
#proxy.use=on | |
# ----- Default Base Path for Dependent Packages ----- | |
# Replace this path with the directory path where dependencies binaries | |
# should be downloaded | |
base.path=/home/me/some-place-to-download-to | |
(3) Updating sources | |
It is recommended that you regularly update the downloaded Tomcat 6 sources | |
using your SVN client. | |
(4) Rebuilds | |
For a quick rebuild of only modified code you can use: | |
cd ${tomcat.source} | |
ant | |
(5) Building the servlet and jsp API documentation | |
cd ${tomcat.source} | |
ant -f dist.xml dist-javadoc | |
(6) Building the extras (commons-logging, webservices etc.). | |
cd ${tomcat.source} | |
ant -f extras.xml | |
(7) Building a release: | |
cd ${tomcat.source} | |
ant -f dist.xml release |