Java Web Application Development With Click Framework/Building

From Wikibooks, open books for an open world
< Java Web Application Development With Click Framework
Jump to: navigation, search

Click uses an Ant based build system for creating JAR files, application WAR files and the Click distribution.

Build Configuration[edit]

The configuration of the Click Ant build system is detailed below:

  --[build]                      Ant build directory
 |   |
 |    ---build.xml               Ant build script
 |   |
 |        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 

Build Requirements[edit]

Ensure the following requirements are met before performing builds:

  1. Ensure JAVA_HOME environment variable is set and points to a JDK installation (1.4 or later).
  2. Ensure ANT_HOME environment variable is set and points to an Ant installation (1.7.0 or later).
  3. Ensure junit.jar is present in your ANT_HOME/lib directory.

Ant Targets[edit]

ant help
Buildfile: build.xml

     [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] Please ensure you have configured


Getting Dependencies[edit]

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 your proxy settings in

# Proxy hostname used by Ant target 'get-deps-proxy'
# Proxy port for by Ant target 'get-deps-proxy'

Building Framework[edit]

To build the Click framework JAR file click.jar

  1. Ensure the above configurations have been made and get-deps has been run.
  2. Run the Ant target build-framework to build the framework:
ant build-framework

Building Extras[edit]

Click Extras JAR file click-extras.jar

  1. Ensure the above configurations have been made and get-deps has been run.
  2. Run the Ant targets framework and build-extras:
ant build-framework build-extras

Building Examples[edit]

To build the Click Examples and Click QuickStart web application WAR files:

  1. Please see the examples/README.txt file, ensuring the required properties have been configured and the dependencies downloaded.
  2. Ensure the above configurations have been made and get-deps has been run.
  3. Run the Ant target build-all:
ant build-all

Framework Dependencies[edit]

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.5.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.1 commons-lang-2.1.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 libraries and 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.

Extras Dependencies[edit]

The Click Extras has the following runtime dependencies in addition to the Framework dependencies.

Library Version JAR Author Description
Cayenne 2.0.3 cayenne-nodeps-2.0.3.jar Apache Cayenne ORM Framework
Hibernate 3.1.3 hibernate-3.1.3.jar Hibernate ORM Framework
Log4J 1.2.14 log4j-1.2.14.jar Log4j Logging Framework
Spring 1.2.9 spring-1.2.9.jar Spring Framework IoC Framework
JSCalendar 1.0 JavaScript source* JavaScript Calendar Widget
JSGraphics 2.33 JavaScript source* Walter Zorn JavaScript Graphics library
Prototype 1.5.0 JavaScript source* Prototype Org JavaScript library 1.7.0 JavaScript source* JavaScript library

*: marked libraries and source are included in the click.jar file.