Building
Click uses an Ant based build system for
creating JAR files, application WAR files and the Click distribution.
- Build Configuration
- Ant Targets
- Framework Dependencies
- Extras Dependencies
1. Build Configuration
The configuration of the Click Ant build system is detailed below:
+--[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
1.1 Build Requirements
Ensure the following requirements are met before performing builds:
- Ensure JAVA_HOME environment variable is set and points to
a JDK installation (1.4 or later).
- Ensure ANT_HOME environment variable is set and points to
an Ant installation (1.7.0 or later).
- Ensure junit.jar is present in your ANT_HOME/lib
directory.
2. Ant Targets
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-sources build source ZIP files for use with IDEs
[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] Please ensure you have configured build.properties
BUILD SUCCESSFUL
2.1 Getting Dependencies
- Run the Ant target get-deps to download JAR dependencies
from Ibiblio Maven repository:
ant get-deps
If you are behind a firewall use the Ant target get-deps-proxy
and configure you proxy settings in build.properties
# 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
2.2 Building Framework
To build the Click framework JAR file click.jar
- Ensure the above configurations have been made and get-deps has
been run.
- Run the Ant target build-framework to build the framework:
ant build-framework
2.3 Building Extras
Click Extras JAR file click-extras.jar
- Ensure the above configurations have been made and get-deps has
been run.
- Run the Ant targets framework and build-extras:
ant build-framework build-extras
2.4 Building Examples
To build the Click Examples and Click QuickStart web application WAR files:
- Please see the examples/README.txt file, ensuring the
required properties have been configured and the dependencies downloaded.
- Ensure the above configurations have been made and get-deps has
been run.
- Run the Ant target build-all:
ant build-all
3. Framework Dependencies
The Click framework has the following runtime dependencies.
Library |
Version |
JAR / Source |
Author |
Description |
Java Runtime |
1.4 |
n/a |
Sun Microsystems |
J2SE Runtime Environment |
Servlet API |
2.3 |
servlet-2.3.jar |
Sun Microsystems |
JEE Servlet API |
Velocity Engine |
1.5 |
velocity-1.6.2.jar* |
Apache Velocity |
Velocity Templating Framework |
Velocity Tools |
1.1 |
WebappLoader source* |
Jakarta Velocity Tools |
Velocity Tools Utility Library |
OGNL |
2.6.9 |
ognl-2.6.9.jar * |
OGNL |
Object Graph Navigation Library |
Common Language |
2.4 |
commons-lang-2.4.jar * |
Jakarta Commons |
General Language Utilities Library |
Common FileUpload |
1.2 |
commons-fileupload-1.2.jar * |
Jakarta Commons |
HTTP File Upload Library |
Commons Codec |
1.3 |
commons-codec-1.3.jar * |
Jakarta Commons |
Encoding Decoding Library |
Commons Collections |
3.1 |
commons-collections-3.1.jar * |
Jakarta Commons |
Collection Utilities Library |
Common IO |
1.1 |
commons-io-1.3.jar * |
Jakarta Commons |
IO Utilities Library |
Concurrent |
1.3.4 |
ConcurrentReaderHashMap source* |
Doug Lea |
Concurrent utilities library |
* : marked JAR libraries or Java source are included in the
click.jar file.
The standard click-xx.jar includes all of the listed dependencies.
Alternatively use the click-nodeps-xx.jar which includes none of these
dependencies.
4. Extras Dependencies
The Click Extras has the following runtime dependencies in addition to the
Framework dependencies.
Please note: 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.
Library |
Version |
JAR |
Author |
Description |
Cayenne |
2.0.4 |
cayenne-nodeps-2.0.4.jar |
Apache Cayenne |
ORM Framework |
Freemarker |
2.3.12 |
freemarker-2.3.12.jar |
Freemarker |
Alternate Template Engine to Velocity |
Hibernate |
3.2.6 |
hibernate-3.2.6.ga.jar |
Hibernate |
ORM Framework |
Log4J |
1.2.14 |
log4j-1.2.14.jar |
Log4j |
Logging Framework |
Spring |
2.5.4 |
spring-2.5.4.jar |
Spring Framework |
IoC Framework |
JSCalendar |
1.0 |
JavaScript source* |
Dynarch.com |
JavaScript Calendar Widget |
JSGraphics |
2.33 |
JavaScript source* |
Walter Zorn |
JavaScript Graphics library |
Prototype |
1.6.0.1 |
JavaScript source* |
Prototype Org |
JavaScript library |
script.aculo.us |
1.8.1 |
JavaScript source* |
script.aculo.us |
JavaScript library |