ANT Setup and
Configuration:
1.
Download ant in your system and unzip to your local folder.
2.
Setup ANT HOME as environment variable and give path up to bin in path
variable.
3. Set JAVA HOME as well.
1.
Now you can check from command prompt as below
Open command line enters as ant.
Build Property file:
build. properties
is the file where you have to define the JDeveloper , your middleware home
details and Admin Server ,managed server
credentials.
# build file for DeployComposite
customProcessList=./customProcessList.txt
#composite.name=HelloWorld
#project.name=HelloWorld
# revision of the composite
#composite.revision=1
# Set oracle.home to
<JDEV_HOME>/jdeveloper, where <JDEV_HOME> is JDEV # installation
directory
wn.bea.home=D:/Oracle_FMW
oracle.home=D:/OracleJdeveloper/jdeveloper
java.passed.home=D:/OracleJdeveloper/jdk1.6.0_38
wl.home=${wn.bea.home}/wlserver_10.3
# soa-server side oracle home
directory - needed for deployment plans
# and the weblogic sca library
deployment
soa.server.oracle.home=D:/Oracle_FMW/Oracle_SOA
###### Deployment server
connection information ###############
# the admin server connection
information
admin.server.host=localhost
admin.server.port=7001
# the domain where soa infra is
installed
server.domain.name=soaosb_domain
# connection information for the
managed server, used for soa-deployment
managed.server.host=localhost
managed.server.port=8001
# User and credentials for the
servers
server.user=weblogic
server.password=welcome1
# wls server where soa is
targeted.
server.targets=soa_server1
Text Details:
Before using any of these Ant scripts that are
related to code, you must create a text file.
Create this file place into your application directory where build files are present.
Create this file place into your application directory where build files are present.
For example, the file may look like this:
This says that there are 2 composites to loop
through; HelloWorld, Welcome. If deployed, the first 2
will be
deployed to the 'default' partition and a revision of '1.0'
Build.XML:
Here is main build.xml file it will compile the project and
do the deployment in our target server.
<?xml version="1.0" encoding="UTF-8"
?>
<project name="AutomaticDeployment"
default="deployComposites">
<echo message="entered screen"/>
<!-- build.properties -->
<property
environment="env"/>
<taskdef
resource="net/sf/antcontrib/antcontrib.properties"/>
<taskdef
resource="net/sf/antcontrib/antlib.xml" >
<classpath>
<pathelement
location="${antcontrib}" />
</classpath>
</taskdef>
<property file="build.properties"/>
<!-- Add targets here -->
<target name="compile-package">
<property name="sca-inf.classes.dir"
value="../SCA-INF/classes"/>
<mkdir dir="${sca-inf.classes.dir}"/>
<echo
message="reached....${oracle.home}..........."/>
<ant
antfile="${oracle.home}/bin/ant-sca-package.xml"
target="package" inheritall="false">
<property name="oracle.home"
value="${oracle.home}"/>
<property name="compositeDir"
value="${basedir}/${project.name}"/>
<!-- needed for adf config
-->
<property name="scac.application.home"
value="${basedir}/${project.name}/.."/>
<!-- name of the composite
-->
<property name="compositeName"
value="${composite.name}"/>
<!-- revision of the
composite -->
<property name="revision"
value="${composite.revision}"/>
<!-- java.passed.home passed
to scac, this property will be
overwritten to the env.JAVA_HOME
if such env variable is defined in OS level-->
<property name="java.passed.home"
value="${java.passed.home}"/>
<property name="wl_home"
value="${wl.home}"/>
</ant>
</target>
<!--<target
name="deploy" depends="compile-package">
<condition property="deploymentplan.name"
value="null">
<not>
<isset property="${deploymentplan.name}"/>
</not>
</condition>
<echo>Deploying to http://${managed.server.host}:${managed.server.port}/soa-infra/deployer</echo>
<ant
antfile="${oracle.home}/bin/ant-sca-deploy.xml"
target="deploy"
inheritall="false">
<property name="user"
value="${server.user}"/>
<property name="password"
value="${server.password}"/>
create the url for deployment
<property name="serverURL"
value="http://${managed.server.host}:${managed.server.port}/soa-infra/deployer"/>
location of the sar
<property name="sarLocation"
value="${deploy.dir}/sca_${composite.name}_rev${composite.revision}.jar"/>
force overwrite if already there
<property name="overwrite"
value="true"/>
configplan
<property name="configplan"
value="${deploymentplan.name}"/>
</ant>
</target> -->
<target name="deployComposites">
<available
file="${customProcessList}" property="file.exists"
value="true" />
<fail
unless="file.exists" message="ERROR: Filename
'${customProcessList}' does not exist." />
<loadfile
property="allprocesses" srcFile="${customProcessList}"/>
<var
name="errorCount" value="0"/>
<var
name="processCount" value="0"/>
<var
name="errorProcessNames" value="(none)"/>
<trycatch
property="tryName" reference="exception_ref">
<try>
<for
list="${allprocesses}" param="processName"
delimiter="${line.separator}">
<sequential>
<propertyregex property="composite.name" input="@{processName}"
regexp="(.*),(.*),(.*),(.*),(.*)" select="\1" override="true"/>
<propertyregex property="composite.partition"
input="@{processName}" regexp="(.*),(.*),(.*),(.*),(.*)"
select="\2" override="true"/>
<propertyregex property="composite.revision" input="@{processName}"
regexp="(.*),(.*),(.*),(.*),(.*)" select="\3" override="true"/>
<propertyregex property="default.composite" input="@{processName}"
regexp="(.*),(.*),(.*),(.*),(.*)" select="\4"
override="true"/>
<propertyregex property="folder.name" input="@{processName}"
regexp="(.*),(.*),(.*),(.*),(.*)" select="\5" override="true"/>
<!--
<property name="deploy.dir"
value="${basedir}/${folder.name}/deploy"/> -->
<math
result="processCount" operand1="${processCount}"
operation="+" operand2="1" datatype="int"/>
<echo>
================================================================================
PACKAGE COMPOSITE #${processCount}: ${composite.name}
================================================================================
</echo>
<ant
antfile="${oracle.home}/bin/ant-sca-package.xml" target="package"
inheritall="false">
<property name="compositeDir"
value="${basedir}/${folder.name}"/>
<property name="compositeName"
value="${composite.name}"/>
<property name="revision"
value="${composite.revision}"/>
</ant>
<echo>
================================================================================
DEPLOY COMPOSITE #${processCount}: ${composite.name}
================================================================================
</echo>
<ant
antfile="${oracle.home}/bin/ant-sca-deploy.xml"
target="deploy" inheritall="false">
<property name="user" value="${server.user}"/>
<property name="password" value="${server.password}"/>
<property
name="serverURL" value="http://${managed.server.host}:${managed.server.port}/soa-infra/deployer"/>
<property name="sarLocation" value="${basedir}/${folder.name}/deploy/sca_${composite.name}_rev${composite.revision}.jar"/>
<property name="partition" value="${composite.partition}"/>
<property name="overwrite" value="true"/>
<property name="forceDefault" value="${default.composite}"/>
<!--
<property name="configplan" value="${deploymentplan.name}"/>-->
</ant>
</sequential>
</for>
</try>
<catch>
<property
name="exception" refid="exception_ref" />
<property
name="message" value="ERROR IN TRYCATCH BLOCK:${line.separator}${exception}"
/>
<echo></echo>
<echo
message="${message}" />
<math
result="errorCount" operand1="${errorCount}"
operation="+" operand2="1" datatype="int"/>
<var
name="errorProcessNames" value="${composite.name}"/>
</catch>
</trycatch>
<echo>
**************************************************************
*
* ANT TARGET
NAME: deployComposites
* FAILED
PROCESS: ${errorProcessNames}
*
**************************************************************
</echo>
</target>
</project>
Note:
Please place ant-contrib-1.0b3
.jar under ant home inside lib folder.you have to download from internet this jar.
your application looks like below:
happy deployment with ant.