WizIQ helps you learn and teach online - any subject you can think of!
Join for FREE

Using Ant to build J2EE Applications

Add to Favourites
Post to:

Description
scmGalaxy.com is dedicated to software configuration, build and Release management. This covers CVS, VSS (Visual Source Safe),Perforce, SVN(Subversion) MKS Integrity, ClearCase,TFS,CM Synergy, Best Practices ,AnthillPro, Apache Ant, Maven, Bamboo, Cruise Control and many more tools.

It provides quality training in SCM practice world.Contact us on info@scmGalaxy.com

Ant is a Java library and command-line tool. Ant's mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.

Ant is written in Java. Users of Ant can develop their own "antlibs" containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source "antlibs".

Ant is extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool.

Software development projects looking for a solution combining build tool and dependency management can use Ant in combination with Ivy.

Comments
Presentation Transcript Presentation Transcript

Using Ant to build J2EE Applications : Using Ant to build J2EE Applications www.scmGalaxy.com Rajesh Kumar info@scmGalaxy.com

Contents : www.scmGalaxy.com Contents Introduction How does ANT work ? Sample Build file Built-in properties ANT – Different flows Writing your own task Command-line options IDE Integration References

Introduction : www.scmGalaxy.com Introduction What Is Ant? A build tool like ‘make’ Open source – from the Apache Jakarta project – http://ant.apache.org/ Implemented in Java Used to build many open source products

Introduction ..contd : www.scmGalaxy.com Introduction ..contd Ease of use – Ant is extended using Java classes – The configuration files are XML-based, calling out a target tree where various tasks get executed – Same config file (build.xml) can be across multiple platorms

How does ANT Work ? : www.scmGalaxy.com How does ANT Work ? Ant commands (or tasks) are implemented by Java classes – many are built-in – others come in optional JAR files – custom commands can be created Each project using Ant will have a build file – typically called build.xml since Ant looks for this by default Each build file is composed of targets – these correspond to common activities like compiling and running code Each target is composed of tasks – Each task is run by an object that implements a particular Task interface – executed in sequence when the target is executed – like make, Ant targets can have dependencies – for example, modified source files must be compiled before the application can be run

How does ANT Work ? .. contd : www.scmGalaxy.com How does ANT Work ? .. contd Targets to be executed – can be specified on the command line when invoking Ant – if none are specified then the default target is executed – execution stops if an error is encountered – so all requested targets may not be executed Each target is only executed once – regardless of the number of other targets that depend on it – for example • the “test” and “deploy” targets both depend on “compile” • the “all” target depends on “test” and “deploy” but “compile” is only executed once when “all” is executed Some tasks are only executed when they need to be – for example, files that have not changed since the last time they were compiled are not recompiled

Sample Build file : www.scmGalaxy.com Sample Build file Hello World You are NOT running this script in Solaris

Sample Build file : www.scmGalaxy.com Sample Build file Save the file as test.xml in some temporary folder ( Say C:\Temp) Set ANT_HOME= C:\Jakarta-Ant-1.5 Set PATH=%PATH%;%ANT_HOME%\bin Cd C:\Temp ant –buildfile test.xml Buildfile: test.xml setup: pre-hello1: pre-hello2: [echo] You are NOT running this script in Solaris hello: [echo] Hello World BUILD SUCCESSFUL Total time: 1 second

Built-in Properties : www.scmGalaxy.com Built-in Properties Ant provides access to all system properties and also has some additional properties.

Ant – Different flows : www.scmGalaxy.com Ant – Different flows Using “depends” Using “antcall” Using “ant”

Ant – Different flows : www.scmGalaxy.com Ant – Different flows Using “depends” – Last task to first task Eg :

Ant – Different flows : www.scmGalaxy.com Ant – Different flows Using “antcall” – Sequential & Functional oriented Calling different targets in the same build.xml (very similar to calling functions in regular programming language) Eg : Module : ${module.name}

Ant – Different flows : www.scmGalaxy.com Ant – Different flows Using “ant” This is used for running scripts for sub-projects Eg :

Core & Optional tasks : www.scmGalaxy.com Core & Optional tasks http://ant.apache.org/manual/index.html

Writing your own task : www.scmGalaxy.com Writing your own task Create a Java class that extends org.apache.tools.ant.Task For each attribute, write a setter method. Implement the interface org.apache.tools.ant.TaskContainer if your task contains other tasks as nested elements Write a public void execute method, with no arguments, that throws a BuildException Adding your task to the system Make sure the class that implements your task is in the classpath when starting Ant. Add a element to your project. This actually adds your task to the system. Use your task in the rest of the buildfile Eg:

Command line options : www.scmGalaxy.com Command line options ant [options] [target [target2 [target3] ...]] Options: -help print this message -projecthelp print project help information -version print the version information and exit -diagnostics print information that might be helpful to diagnose or report problems. -quiet, -q be extra quiet -verbose, -v be extra verbose -debug print debugging information -emacs produce logging information without adornments -logfile use given file for log -l '' -logger the class which is to perform logging -listener add an instance of class as a project listener -buildfile use given buildfile -file '' -f '' -D= use value for given property -propertyfile taking precedence -inputhandler the class which will handle input requests -find load all properties from file with -D properties search for buildfile towards the root of the filesystem and use it

IDE Integration : www.scmGalaxy.com IDE Integration Ant can be integrated with the following Java IDEs – Jbuilder – IntelliJ Idea – Eclipse See the Ant User Manual for more details – in http://ant.apache.org/manual/index.html

References : www.scmGalaxy.com References Home – http://ant.apache.org/ FAQ – http://ant.apache.org/faq.html Mailing Lists http://marc.theaimsgroup.com/?l=ant-user&r=1&w=2 http://archives.apache.org/eyebrowse/SummarizeList?listId=5 Books Java Development with Ant - http://www.manning.com/hatcher/ Ant: The Definitive Guide - http://www.oreilly.com/catalog/anttdg/ Related Projects : Maven - http://jakarta.apache.org/turbine/maven/ Centipede - http://www.krysalis.org/centipede/ Tools built over Ant : AntHill - http://www.urbancode.com/projects/anthill/default.jsp CruiseControl - http://cruisecontrol.sourceforge.net/

Slide 19 : Thank You ! www.scmGalaxy.com

Want to learn?

Sign up and browse through relevant courses.

Name:
Your Email:
Password:
Country:
Contact no.:


Area code Number
Subject you are interested in:
Word verification: (Enter the text as in image)


Sign Up Already a member? Sign In
I agree to WizIQ's User Agreement & Privacy Policy
3 Followers

Your Facebook Friends on WizIQ