| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |
| "http://www.w3.org/TR/html4/loose.dtd"> | |
| <!-- | |
| 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. | |
| --> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> | |
| <meta name="Author" content="Malcolm Edgar"/> | |
| <meta name="description" lang="en" content="Apache Click Java web application framework"/> | |
| <meta name="keywords" lang="en" content="Apache Click, Click Framework, Java, JEE, J2EE, web application framework, open source"/> | |
| <title>Apache Click</title> | |
| <link rel="stylesheet" type="text/css" href="../../help.css"/> | |
| <style type="text/css"> | |
| th { text-align: left; } | |
| td { vertical-align: top; white-space: nowrap; } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>Building</h1> | |
| Click uses an <a href="http://ant.apache.org">Ant</a> based build system for | |
| creating JAR files, application WAR files and the Click distribution. | |
| <ol> | |
| <li><a href="#configuration">Build Configuration</a> | |
| </li> | |
| <li><a href="#ant-targets">Ant Targets</a> | |
| </li> | |
| <li><a href="#framework-dependencies">Framework Dependencies</a> | |
| </li> | |
| <li><a href="#extras-dependencies">Extras Dependencies</a> | |
| </li> | |
| <li><a href="#third-party-licensing-issues">Third-party Licensing Issues</a> | |
| </li> | |
| </ol> | |
| <p> </p> | |
| <a name="build-configuration"></a><h2>1. Build Configuration</h2> | |
| The configuration of the Click Ant build system is detailed below: | |
| <pre class="codeConfig" style="margin-left:3em;"> | |
| +--[build] Ant build directory | |
| | | | |
| | +---build.xml Ant build script | |
| | | | |
| | +---build.properties Ant build properties | |
| | | |
| +--[dist] JAR and WAR file output directory | |
| | | |
| +--[documentation] Click documentation set application | |
| | | |
| +--[examples] Click Examples application | |
| | | | |
| | +---build.xml Ant build script | |
| | | | |
| | +---README.txt Click Examples Readme file | |
| | | |
| +--[extras] Click Extras source directory | |
| | | |
| +--[framework] Click framework source directory | |
| | | |
| +--[lib] Dependent JAR libraries directory | |
| | | |
| +--[mock] Mock objects source directory </pre> | |
| <h3>1.1 Build Requirements</h3> | |
| Ensure the following requirements are met before performing builds: | |
| <ol> | |
| <li>Ensure <tt>JAVA_HOME</tt> environment variable is set and points to | |
| a JDK installation (1.5 or later).<p/> | |
| </li> | |
| <li>Ensure <tt>ANT_HOME</tt> environment variable is set and points to | |
| an Ant installation (1.7.0 or later).<p/> | |
| </li> | |
| <li>Ensure <tt>junit.jar</tt> is present in your <tt>ANT_HOME/lib</tt> | |
| directory.<p/> | |
| </li> | |
| </ol> | |
| <a name="ant-targets"></a><h2>2. Ant Targets</h2> | |
| <pre class="codeConfig" style="margin-left:3em;"> | |
| ant help | |
| Buildfile: build.xml | |
| help: | |
| [echo] Click web application framework | |
| [echo] =============================== | |
| [echo] Main targets: | |
| [echo] build-all build framework, extras, examples | |
| [echo] build-distribution build distribution ZIP file | |
| [echo] build-examples build click-examples WAR file | |
| [echo] build-extras build click-extras JAR file | |
| [echo] build-framework build click framework JAR file | |
| [echo] build-maven-bundles build Maven repository upload bundles | |
| [echo] build-mock build mock JAR file | |
| [echo] build-sources build source ZIP files for use with IDEs | |
| [echo] checkstyle run checkstyle report on Java soruce | |
| [echo] deploy-examples copy examples WAR files to app server | |
| [echo] get-deps download JAR dependencies | |
| [echo] get-deps-proxy download JAR dependencies via proxy | |
| [echo] help display the Help message | |
| [echo] javadoc create Javadoc HTML files | |
| [echo] project-quick-start build application template | |
| [echo] test-all run all unit tests | |
| [echo] Please ensure you have configured build.properties | |
| BUILD SUCCESSFUL </pre> | |
| <h3>2.1 Getting Dependencies</h3> | |
| <ol> | |
| <li>Run the Ant target <tt>get-deps</tt> to download JAR dependencies | |
| from the <a href="http://repo1.maven.org/maven2">Maven</a> repository: | |
| <pre class="codeConfig"> | |
| ant get-deps </pre> | |
| If you are behind a firewall use the Ant target <tt>get-deps-proxy</tt> | |
| and configure you proxy settings in <tt>build.properties</tt> | |
| <pre class="codeConfig"> | |
| # Proxy hostname used by Ant target 'get-deps-proxy' | |
| proxy.host=192.168.0.3 | |
| # Proxy port for by Ant target 'get-deps-proxy' | |
| proxy.port=3128 </pre> | |
| </li> | |
| </ol> | |
| <h3>2.2 Building Framework</h3> | |
| To build the Click framework JAR file <tt>click.jar</tt> | |
| <ol> | |
| <li>Ensure the above configurations have been made and <tt>get-deps</tt> has | |
| been run.<p/> | |
| </li> | |
| <li>Run the Ant target <tt>build-framework</tt> to build the framework: | |
| <pre class="codeConfig"> | |
| ant build-framework </pre> | |
| </li> | |
| </ol> | |
| <h3>2.3 Building Extras</h3> | |
| Click Extras JAR file <tt>click-extras.jar</tt> | |
| <ol> | |
| <li>Ensure the above configurations have been made and <tt>get-deps</tt> has | |
| been run.<p/> | |
| </li> | |
| <li>Run the Ant targets <tt>framework</tt> and <tt>build-extras</tt>: | |
| <pre class="codeConfig"> | |
| ant build-framework build-extras </pre> | |
| </li> | |
| </ol> | |
| <h3>2.4 Building Examples</h3> | |
| To build the Click Examples and Click QuickStart web application WAR files: | |
| <ol> | |
| <li>Please see the <tt>examples/README.txt</tt> file, ensuring the | |
| required properties have been configured and the dependencies downloaded.<p/> | |
| </li> | |
| <li>Ensure the above configurations have been made and <tt>get-deps</tt> has | |
| been run.<p/> | |
| </li> | |
| <li>Run the Ant target <tt>build-all</tt>: | |
| <pre class="codeConfig"> | |
| ant build-all </pre> | |
| </li> | |
| </ol> | |
| <a name="framework-dependencies"></a><h2>3. Framework Dependencies</h2> | |
| The Click framework has the following runtime dependencies. | |
| <table style="border: 1px solid black; margin: 1em 0em;" cellspacing="0" cellpadding="6"> | |
| <tr style="background-color: navy; color: white;"> | |
| <th>Library</th> | |
| <th>Version</th> | |
| <th>JAR / Source</th> | |
| <th>Author</th> | |
| <th>Description</th> | |
| </tr> | |
| <tr> | |
| <td>Java Runtime</td> | |
| <td>1.5</td> | |
| <td>n/a</td> | |
| <td><a target="_blank" href="http://java.sun.com/j2se/">Sun Microsystems</a></td> | |
| <td>J2SE Runtime Environment</td> | |
| </tr> | |
| <tr> | |
| <td>Servlet API</td> | |
| <td>2.3</td> | |
| <td>servlet-2.3.jar</td> | |
| <td><a target="_blank" href="http://java.sun.com/products/servlet/">Sun Microsystems</a></td> | |
| <td>JEE Servlet API</td> | |
| </tr> | |
| <tr> | |
| <td>Velocity Engine</td> | |
| <td>1.6.3</td> | |
| <td>velocity-1.6.3.jar<span class="red">*</span></td> | |
| <td><a target="_blank" href="http://velocity.apache.org/">Apache Velocity</a></td> | |
| <td>Velocity Templating Framework</td> | |
| </tr> | |
| <tr> | |
| <td>Velocity Tools</td> | |
| <td>1.1</td> | |
| <td>WebappLoader source<span class="red">**</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/velocity/tools/">Jakarta Velocity Tools</a></td> | |
| <td>Velocity Tools Utility Library</td> | |
| </tr> | |
| <tr> | |
| <td>OGNL</td> | |
| <td>2.6.9</td> | |
| <td>ognl-2.6.9.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://www.ognl.org/">OGNL</a></td> | |
| <td>Object Graph Navigation Library</td> | |
| </tr> | |
| <tr> | |
| <td>Common Language</td> | |
| <td>2.4</td> | |
| <td>commons-lang-2.4.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/commons/">Jakarta Commons</a></td> | |
| <td>General Language Utilities Library</td> | |
| </tr> | |
| <tr> | |
| <td>Common FileUpload</td> | |
| <td>1.2</td> | |
| <td>commons-fileupload-1.2.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/commons/">Jakarta Commons</a></td> | |
| <td>HTTP File Upload Library</td> | |
| </tr> | |
| <tr> | |
| <td>Commons Codec</td> | |
| <td>1.3</td> | |
| <td>commons-codec-1.3.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/commons/">Jakarta Commons</a></td> | |
| <td>Encoding Decoding Library</td> | |
| </tr> | |
| <tr> | |
| <td>Commons Collections</td> | |
| <td>3.1</td> | |
| <td>commons-collections-3.1.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/commons/">Jakarta Commons</a></td> | |
| <td>Collection Utilities Library</td> | |
| </tr> | |
| <tr> | |
| <td>Common IO</td> | |
| <td>1.1</td> | |
| <td>commons-io-1.3.jar <span class="red">*</span></td> | |
| <td><a target="_blank" href="http://jakarta.apache.org/commons/">Jakarta Commons</a></td> | |
| <td>IO Utilities Library</td> | |
| </tr> | |
| <tr> | |
| <td>Concurrent</td> | |
| <td>1.3.4</td> | |
| <td>ConcurrentReaderHashMap class<span class="red">**</span></td> | |
| <td><a target="_blank" href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html">Doug Lea</a></td> | |
| <td>Concurrent utilities library</td> | |
| </tr> | |
| </table> | |
| <span class="red">*</span> : marked JAR libraries or Java source are included in the | |
| <tt>click.jar</tt> file. | |
| <p/> | |
| <span class="red">**</span> : marked JAR libraries or Java source are included in both | |
| the <tt>click.jar</tt> and <tt>click-nodeps.jar</tt> files. | |
| <p/> | |
| The standard <tt>click-xx.jar</tt> includes all of the listed dependencies.<br/> | |
| Alternatively use the <tt>click-nodeps-xx.jar</tt> which includes none of these | |
| dependencies (except dependencies marked with <span class="red">**</span>, which | |
| are included in both jars). | |
| <p/> | |
| <a name="extras-dependencies"></a><h2>4. Extras Dependencies</h2> | |
| The Click Extras has the following runtime dependencies in addition to the | |
| Framework dependencies. | |
| <p/> | |
| <b>Please note:</b> a runtime dependency is only required if you use the specific | |
| library. For example, if you use Hibernate, you need hibernate.jar on your | |
| classpath, otherwise it is not needed. | |
| <table style="border: 1px solid black; margin: 1em 0em;" cellspacing="0" cellpadding="6"> | |
| <tr style="background-color: navy; color: white;"> | |
| <th>Library</th> | |
| <th>Version</th> | |
| <th>JAR</th> | |
| <th>Author</th> | |
| <th>Description</th> | |
| </tr> | |
| <tr> | |
| <td>Cayenne</td> | |
| <td>3.0</td> | |
| <td>cayenne-server-3.0M6.jar</td> | |
| <td><a target="_blank" href="http://cayenne.apache.org/">Apache Cayenne</a></td> | |
| <td>ORM Framework</td> | |
| </tr> | |
| <tr> | |
| <td>Freemarker</td> | |
| <td>2.3.12</td> | |
| <td>freemarker-2.3.12.jar</td> | |
| <td><a target="_blank" href="http://freemarker.sourceforge.net/">Freemarker</a></td> | |
| <td>Alternate Template Engine to Velocity</td> | |
| </tr> | |
| <tr> | |
| <td>Hibernate</td> | |
| <td>3.2.6</td> | |
| <td>hibernate-3.2.6.ga.jar</td> | |
| <td><a target="_blank" href="http://www.hibernate.org/">Hibernate</a></td> | |
| <td>ORM Framework</td> | |
| </tr> | |
| <tr> | |
| <td>Log4J</td> | |
| <td>1.2.14</td> | |
| <td>log4j-1.2.14.jar</td> | |
| <td><a target="_blank" href="http://logging.apache.org/log4j/">Log4j</a></td> | |
| <td>Logging Framework</td> | |
| </tr> | |
| <tr> | |
| <td>Spring</td> | |
| <td>2.5.6</td> | |
| <td >spring-2.5.6.jar</td> | |
| <td><a target="_blank" href="http://www.springframework.org/">Spring Framework</a></td> | |
| <td>IoC Framework</td> | |
| </tr> | |
| <tr> | |
| <td>Prototype</td> | |
| <td>1.6.1.-RC3</td> | |
| <td>JavaScript source<span class="red">*</span></td> | |
| <td><a target="_blank" href="http://www.prototypejs.org/">Prototype Org</a></td> | |
| <td>JavaScript library</td> | |
| </tr> | |
| <tr> | |
| <td>script.aculo.us</td> | |
| <td>1.8.1</td> | |
| <td>JavaScript source<span class="red">*</span></td> | |
| <td><a target="_blank" href="http://script.aculo.us/">script.aculo.us</a></td> | |
| <td>JavaScript library</td> | |
| </tr> | |
| </table> | |
| <span class="red">*</span> : marked JavaScript sources are included in the | |
| <tt>click-extras.jar</tt> file. | |
| <p/> | |
| <a name="third-party-licensing-issues"></a><h2>5. Third-party Licensing Issues</h2> | |
| <ul> | |
| <li><a target="_blank" class="external" href="http://www.hibernate.org/">Hibernate</a> | |
| is licensed under the Lesser GNU Public License, which is a more restrictive license | |
| than the Apache Software License used by Apache Click. The restriction only | |
| really applies when you try and redistribute a modified version of Hibernate | |
| and should not affect the majority of users. Please see their | |
| <a target="_blank" class="external" href="http://hibernate.org/356.html">FAQ</a> | |
| for more detail. | |
| <p/> | |
| Because of these licensing issues, the Hibernate package can optionally be | |
| excluded from the Click Extras build. Please see <tt>build.properties</tt> | |
| for details. | |
| </li> | |
| </ul> | |
| </body> | |
| </html> | |