Apache Ant

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

Introduction to Ant : Introduction to Ant www.scmGalaxy.com scmGalaxy Author: Rajesh Kumar info@scmGalaxy.com

Agenda : www.scmGalaxy.com scmGalaxy What is ANT? Installation Sample build.xml Executing ant script Closer look at the structure of ANT file Advantages of using ANT Packaging – JAR, WAR, EAR Agenda

What is ANT? : www.scmGalaxy.com scmGalaxy What is ANT? Another Neat Tool Java-based build tool Like make, without make’s wrinkles ? An open source Apache Jakarta project http://ant.apache.org/ Implemented in Java, implemented for Java

Installation : www.scmGalaxy.com scmGalaxy Installation Download the binaries from http://jakarta.apache.org/ant/index.html Unzip to a suitable directory Set ANT_HOME = path_to_ant_folder Append PATH=%PATH%;%ANT_HOME%\bin to the PATH environment variable Append the .jar files in /path_to_ant/lib/ to the CLASSPATH environment variable Ensure that JAVA_HOME points to the location of the JDK installation on your machine & /path_to_jdk/lib/* is a part of the CLASSPATH environment variable

Working with ANT : www.scmGalaxy.com scmGalaxy Working with ANT Every project using ANT will have a build file – build.xml

A simple build.xml : www.scmGalaxy.com scmGalaxy A simple build.xml XML declaration specifying version of XML used. All XML constraints hold good for build.xml

A simple build.xml [Contd.] : www.scmGalaxy.com scmGalaxy A simple build.xml [Contd.] Property declaration is like user-defined variables to use within the build file It has 2 attributes name – name of property value – desired value of the property To reference a property, ${property_name} - ${src} Built in properties that ANT provides : basedir v ant.file ant.version v ant.project.name ant.java.version

A simple build.xml [Contd.] : www.scmGalaxy.com scmGalaxy A simple build.xml [Contd.]

A simple build.xml [Contd.] : www.scmGalaxy.com scmGalaxy A simple build.xml [Contd.] depends – comma separated list of all the targets on which this target depends, i.e, targets that must be executed prior to the execution of this target javac element is a task which is performed under the target compile By default, only those .java input files that have a more recent timestamp than their corresponding .class output files will be compiled

Executing ant script : www.scmGalaxy.com scmGalaxy Executing ant script 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 file system and use it

Path-like structures - classpath : www.scmGalaxy.com scmGalaxy Path-like structures - classpath Wherever path-like values need to be specified, a nested element can be used : location - specifies a single file or directory relative to the project's base directory or an absolute filename path - accepts “:” or “;” separated lists of locations

Path-like structures - path : www.scmGalaxy.com scmGalaxy Path-like structures - path To use the same path-like structure for several tasks, you can define them with a element at the same level as targets, and reference them via their id attribute

Path-like structures – dirset, fileset,filelist : www.scmGalaxy.com scmGalaxy Path-like structures – dirset, fileset,filelist

Tasks : www.scmGalaxy.com scmGalaxy Tasks Piece of code that can be executed Built-in tasks : javac, java, javadoc, javah, junit mkdir, copy, move, delete, fileset jar, war, zip, unjar, unwar, unzip echo, cvs, exec ant, antcall You can also write your own tasks

javac : www.scmGalaxy.com scmGalaxy javac Compiles a java source tree Source & destination directory recursively scanned for .java files to compile By default only check made for rebuild is existence / modification time To define any other java class dependencies use task     There are many more attributes / options available. Check Ant User Manual for more info.

Building subprojects - ant : www.scmGalaxy.com scmGalaxy Building subprojects - ant Runs Ant on supplied build file This task must not be used outside of a target if it invokes the same build file that it is part of

Calling other targets - antcall : www.scmGalaxy.com scmGalaxy Calling other targets - antcall Call another target within the same build-file (optionally specifying properties) This task must no be used outside of a target

Advantages : www.scmGalaxy.com scmGalaxy Advantages Ease of use Configuration files are XML based Same config file (build.xml) can be used across platforms Platform independent Special support for Java Easy to create JavaDocs, WAR & JAR files Built-in support for JUnit FTP CVS

Advantages [Contd.] : www.scmGalaxy.com scmGalaxy Advantages [Contd.] Particularly good for automating complicated repetitive tasks which is what most build processes are all about! ANT can be integrated with most Java IDEs Eclipse Jbuilder IntelliJIdea

PACKAGING : PACKAGING

EJB Packaging – ejb-jar : www.scmGalaxy.com scmGalaxy ejb-jar file will contain : Beans’ class files Beans’ deployment descriptors META-INF/ejb-jar.xml Application server specific file (e.g. META-INF/jboss.xml) Sample ejb-jar.xml Sample application specific descriptor file EJB Packaging – ejb-jar

Web ARchive (WAR) : www.scmGalaxy.com scmGalaxy Has specific hierarchical directory structure Top-level directory is the document root of application WAR has the following folders (usually): jsp – JSP files images – images used in the JSPs css – style sheet files scripts – javascript files WEB-INF WEB-INF folder contains Configuration files like web.xml, struts-config.xml .tld files (if any) lib : directory that contains jar archives of libraries classes : directory that contains the servlet classes and utility classes Web ARchive (WAR)

Enterprise ARchive (EAR) : www.scmGalaxy.com scmGalaxy An EAR file can contain : Web components (war) Beans (ejb-jar) Libraries (jar) J2EE deployment descriptor (META-INF/application.xml) Sample application.xml Enterprise ARchive (EAR)

References : www.scmGalaxy.com scmGalaxy References Ant home page http://ant.apache.org/ Ant manual http://ant.apache.org/manual/index.html Another beginner’s tutorial http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/ant/ant.html

Slide 25 : www.scmGalaxy.com Thank You ! Author: Rajesh Kumar rajeshkumar.raj06@gmail.com

Want to learn?

Sign up and browse through relevant courses.

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


Area code Number
Subjects 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

Give live classes, create & sell online courses

Try it free Plans & Pricing

Connect