Using Ant to automate tasks

To support using Apache Ant with Java™ Platform, Enterprise Edition (Java EE) applications running on the application server, the product provides a copy of the Ant tool and a set of Ant tasks that extend the capabilities of Ant to include product-specific functions. Ant has become a very popular tool among Java programmers.

About this task

Apache Ant is a Java-based build tool. In theory, it is similar to Make, but Ant is different. Instead of a model in which it is extended with shell-based commands, Ant is extended using Java classes. Instead of writing shell commands, XML-based configuration files are used. These files reference a target tree in which various tasks are run. Each task is run by an object that implements a particular Task interface.
Avoid trouble:
  • Calling the WebSphere_Ant (WsAnt) scripts outside of the ws_ant launcher is not supported or recommended.
  • When you invoke the Ant tool, do not pass empty strings in place of command arguments in ant script. The script will not work in the wsadmin environment. The <arg value> cannot be an empty string, such as shown in the following example:
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="proj" default="main">
    		<taskdef name="wsadmin" classname="com.ibm.websphere.ant.tasks.WsAdmin"/>
    		<target name="main">
    			<wsadmin,conntype="NONE" lang="jython" failonerror="true" script="&(basedir)/script.ph">
    					<arg value="blah" />
    					<arg value="" />
    			</wsadmin>
    			<!-- manaeapp action="blah" variation-number="0" -->
    		</target>
    </project>
  • In general, for ws_ant.sh scripts, use single quote for strings containing special characters:
    • For a string containing a single quote or a double quote, use the other character to quote the string. For example, if you specify bin/ws_ant.sh -f ant.xml -Dsystem.property='"a quoted String"', the property is set to "a quoted string". Similarly, if you specify bin/ws_ant.sh -f ant.xml -Dsystem.peoperty="'a quoted string'", the property is set to 'a quoted string'.

      You cannot include both single and double quotes in the same string.

    • For a string containing a back quote, use a single quotes surrounding the string and escape the back quote with backslash. For example, if you specify bin/ws_ant.sh -f ant.xml -Dsystem.property='\`a quoted string\`', the property is set to `a quoted string`.
    • For a string containing a backslash, surround the string with single quotes and escape it with a backslash. For example, if you specify bin/ws_ant.sh -f ant.xml -Dsystem.property='c:\\Program Files\\IBM'. the property is set to c:\Program Files\IBM.
    • For a string containing a dollar sign, surround the string with single quotes and escape it with a backslash. For example, if you specify bin/ws_ant.sh -f ant.xml -Dsystem.property='\$3.99', the property is set to $3.99.
By combining the following tasks with those provided by Ant, you can create build scripts that compile, package, install, and test your application on the application server:
  • Install and uninstall applications
  • Start and stop servers in a base configuration
  • Run administrative scripts or commands
  • Run the Enterprise JavaBeans (EJB) deployment tool for EJB 1.x or 2.x modules
  • Run the JavaServer Pages (JSP) file precompilation tool

For more detailed information about Ant, refer to the Apache organization website.

Procedure

  • To run Ant and have it automatically see the WebSphere® classes, use the ws_ant command.

    The ws_ant command is provided with the Apache Ant tool.

    [AIX Solaris HP-UX Linux Windows]See the app_server_root/bin/ws_ant.bat|sh file for the Apache Ant tool.

    [IBM i]See the app_server_root/bin/ws_ant file for the Apache Ant tool.

  • Use Ant tasks for deployment and server operation.

    The Apache Ant tasks for the product reside in the Java package: com.ibm.websphere.ant.tasks. The API documentation for this package contains detailed information about all of the Ant tasks that are provided and how to use them.

    See com.ibm.websphere.ant.tasks API documentation in the Reference section of the documentation.

  • Use Ant tasks for building application code.

    Refer to the Rational® Application Developer documentation.

  • Use the Apache Struts framework to create an extensible development environment for your application, based on published standards and proven design patterns.

    Apache struts is a framework that is supported by the open source community.

    IBM® WebSphere Application Server provides the Apache Struts JAR file in the app_server_root/optionalLibraries/Apache/Struts/1.1 directory of your product installation. If using Struts in your application or Application Server, you need to configure a shared library that points to the Struts library JAR file.

    The Struts framework provides the invisible underpinnings every professional web application needs to survive. The core of Struts is a flexible control layer based on standard technologies such as Java Servlets, JavaBeans, ResourceBundles, and Extensible Markup Language (XML).

    Deprecated feature: Shipment of Apache Struts 1.1, 1.2.4, and 1.2.7 as optional libraries within WebSphere Application Server is deprecated in Version 7.0.

    Struts encourages application architectures based on the Model 2 approach, a variation of the classic Model-View-Controller (MVC) design paradigm. Struts provides its own Controller component and integrates with other technologies to provide the Model and the View. For the Model, Struts can interact with any standard data access technology, including Enterprise JavaBeans (EJB) components, and JDBC. For the View, Struts works well with JavaServer Pages (JSP) files, XSLT, or other presentation systems.