Skip to main content

Ant Tutorial


  • Build.xml is the backbone file for running ANT.
  • It has one project tag and at least one target tag.
  • Project Tag has three attributes
    • Name:- Project Name
    • Default:-Default target to be called
    • Basedir:- Basic Directory to do the needful.(More specifically it contains the absolute path.)
  • Example:
    <project name="My Project" default="compile" basedir=".">

  • Then the target tag
    • Name:- target name(Required)
    • Depends:-if dependent on other targets..(We can even use if statement like if there exist the property then the target is dependent on other target )
    • Description:- description.
  • Example:
    <target name="clean" description="Removing the all generated files.">
    <delete dir="${dir.build}"/>
    <delete dir="${dir.dest}"/>
    </target>
  • Then the property tag.
    • Name:-name of the property
    • Location:- It contains the property name.
    • Value:- we can place the property value between ${"name }
    • File:- The name of the property file.
  • Example:
    <property name="build" value="${build}"/>
    <property name="build" location="src"/>
    <property file="build.properties"/>
  • Sample: build.xml
<project name="My Project" default="compile" basedir=".">
<property name="build" value="${build}"/> 

 
<property name="src" location="src"/> 

 
<property file="build.properties"/> 

 
<project name="My Project" default="jar" basedir=".">
<property name="dir.src" value="src"/>
<property name="dir.build" value="build"/>
<property name="dir.dest" value="dest"/>
<target name="clean" description="Removing the all generated files.">
<delete dir="${dir.build}"/>
<delete dir="${dir.dest}"/>
</target>
<target name="prepare" depends="clean">
<mkdir dir="${dir.build}"/>
<mkdir dir="${dir.dest}"/>
<mkdir dir="${dir.src}"/>
</target>
<target name="compile" depends="prepare" description="Compilation of all source code.">
<javac srcdir="${dir.src}" destdir="${dir.build}"/>
</target>
<target name="jar" depends="compile" description="Generates Sample.jar file in the dest folder">
<jar jarfile="${dir.dest}/sample.jar" basedir="${dir.build}"/>
</target>
</project>
<target name="buildWar" depends="init" description="build a war file"/>

 
<target name="init" if="build"/>

 
<target name="init" unless="build"/>

Popular posts from this blog

Overview of EJB and Lifecycle

The container is responsible for loading, activating, and in general maintaining the "life-cycle" of objects it provides. EJB have a fairly complex life-cycle. There are several kinds of EJB: Session Beans: These may be either stateful or stateless, and are primarily used to encapsulate business logic, carry out tasks on behalf of a client, and act as controllers or managers for other beans.   Entity Beans: Entity beans represent persistent objects or business concepts that exist outside a specific application's lifetime. They are typically stored in a relational database. Entity beans can be developed using bean-managed persistence, which is implemented by the developer, or container-managed persistence, implemented by the container.   Message-Driven Beans : Message-driven beans listen asynchronously for Java Message Service (JMS) messages from any client or component and are used for loosely coupled, typically batch processing.

Singleton Pattern

Lazy Initialization :- The instantiation of an object can be delayed until it is actually needed. Usage: This especially beneficial when the constructor is doing a costly job like, accessing a remote database. Example: This code demonstrates how the Singleton pattern can be used to create a counter to provide unique sequential numbers, such as might be required for use as primary keys in a Database:   Sequence.java   public class Sequence { private static Sequence instance; private static int counter; private Sequence() { counter = 0; // May be necessary to obtain // starting value elsewhere... } public static synchronized Sequence getInstance() { if(instance==null) // Lazy instantiation { instance = new Sequence(); } return instance; } public static synchronized int getNext() { return ++counter; } }   Some things to note about this implementation: Synchronized methods are used to ensure that the class is thread-safe. This class cannot be subclassed because the constructor is private ...

Hibernate Notes

  The Hibernate project has the structure as shown in the figure as above. We need one hibernate.cfg.xml file for hibernate configuration which handles connection pulling and other stuff like driver name, username of the database, password of the database, and the following properties.. Hibernate.cfg.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory>   <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property>   <property name="hibernate.connection.url"> jdbc:mysql://localhost/hibernatetutorial </property>   <property name="hibernate.connection.username"> root </property>   <property name="hibernate.connection.password"></pr...