SVN、Eclipse和Java
我只是想知道,设置SVN并将其部署到只包含JSP和类文件的外部服务器的解决方案是什么。在部署时如何清除src文件夹。什么是合适的设置。我只想让多个用户提交工作,包括src文件,但当他们部署到生产服务器上时,我希望文件结构排除我不需要的src文件夹、.project、.classpath等文件。编写一个脚本(我使用ant进行此类java项目)这会将您想要的内容提升/复制到您的生产环境中SVN、Eclipse和Java,java,eclipse,svn,Java,Eclipse,Svn,我只是想知道,设置SVN并将其部署到只包含JSP和类文件的外部服务器的解决方案是什么。在部署时如何清除src文件夹。什么是合适的设置。我只想让多个用户提交工作,包括src文件,但当他们部署到生产服务器上时,我希望文件结构排除我不需要的src文件夹、.project、.classpath等文件。编写一个脚本(我使用ant进行此类java项目)这会将您想要的内容提升/复制到您的生产环境中 <!-- **************** USAGE (DEFAULT) --> <targ
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
在我的例子中,ant脚本:
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
一般来说,除了简单的项目之外,您还需要一个真正的生成/构建环境……您必须自己编写
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
蚂蚁
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
马文
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
shell脚本
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
制造
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
所有这些都是可能的解决办法
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
${ant.project.name}的生成从${TSTAMP}在${TODAY}上开始
正在编译源文件。。。
编译完成。
将web.xml文件中的所有属性替换为${penvironment}.properties中的值
将crm.properties文件中的所有属性替换为${penvironment}.properties中的值
正在将“tmp/${penvironment}.zip”复制到“${webuser}@${pserver}:/opt/www”
正在复制http基本配置文件。。。
http配置文件中的http仅替换。。。
https配置文件中仅替换https。。。
编写一个脚本(我将ant用于此类java项目),将您想要的内容升级/复制到您的生产环境中
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
在我的例子中,ant脚本:
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
一般来说,除了简单的项目之外,您还需要一个真正的生成/构建环境……您必须自己编写
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
蚂蚁
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
马文
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
shell脚本
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
制造
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
所有这些都是可能的解决办法
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
<!-- **************** USAGE (DEFAULT) -->
<target name="usage">
<!-- echo detailed usage instructions here -->
</target>
<!-- ************************************************** -->
<!-- ******************* WAS 4.0 WORKER TARGETS -->
<target name="init" depends="validenvironment">
<tstamp/>
<echo>Build of ${ant.project.name} started at ${TSTAMP} on ${TODAY} </echo>
</target>
<target name="inittomcat">
<delete dir="tomcatdeploy" />
<mkdir dir="tomcatdeploy" />
</target>
<target name="initapache">
<delete dir="apacheconfig" />
<mkdir dir="apacheconfig" />
</target>
<!-- validates that you've specified an environment (production, dev, staging etc.) from an allowed list -->
<target name="validenvironment">
<condition property="valid.environment">
<or>
<equals arg1="${penvironment}" arg2="dev" />
<equals arg1="${penvironment}" arg2="qa" />
<equals arg1="${penvironment}" arg2="staging" />
<equals arg1="${penvironment}" arg2="prod" />
</or>
</condition>
<fail message="Invalid target ${penvironment}." unless="valid.environment" />
</target>
<!-- validates that you've specified a target server to deploy to. Only checks to see if the propery is set, not actual values -->
<target name="validserver">
<condition property="valid.server">
<isset property="pserver" />
</condition>
<fail message="Invalid server ${pserver}. You must specifiy a server for this target." unless="valid.server" />
</target>
<target name="initwar">
<delete dir="tmp/war" />
<mkdir dir="tmp/war" />
<mkdir dir="tmp/war/WEB-INF" />
<mkdir dir="tmp/war/WEB-INF/classes" />
<mkdir dir="tmp/war/WEB-INF/lib" />
<mkdir dir="tmp/war/tags" />
<mkdir dir="tmp/war/images" />
<mkdir dir="tmp/war/javascript" />
<mkdir dir="tmp/war/html" />
<mkdir dir="tmp/war/components" />
</target>
<target name="war" depends="initwar" if="penvironment">
<echo>Compiling source files...</echo>
<ant antfile="build.xml" dir="classes/" target="compile" inheritAll="false" >
<property name="penvironment" value="${penvironment}" />
</ant>
<echo>Compile done.</echo>
<copy todir="tmp/war/WEB-INF/classes" preservelastmodified="true" >
<fileset dir="classes/build" includes="**/*.class" />
</copy>
<copy todir="tmp/war/WEB-INF/controller_jsp" preservelastmodified="true" >
<fileset dir="controller" includes="**/*.*" />
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="build" includes="**/*.xsl" />
</copy>
<copy todir="tmp/war/WEB-INF/lib" preservelastmodified="true" >
<fileset dir="build/lib${penv}" includes="**/*.*" />
</copy>
<copy todir="tmp/war/html" preservelastmodified="true" >
<fileset dir="html" includes="**/*.*" />
</copy>
<copy todir="tmp/war/components" preservelastmodified="true" >
<fileset dir="components" includes="**/*.*" />
</copy>
<copy todir="tmp/war/" preservelastmodified="true" >
<fileset dir="root" includes="**/*.*" />
</copy>
<copy todir="tmp/war/pages" preservelastmodified="true" >
<fileset dir="pages" includes="**/*.*" />
</copy>
<copy todir="tmp/war/tags" preservelastmodified="true" >
<fileset dir="tags" includes="**/*.*" />
</copy>
<copy todir="tmp/war/images" preservelastmodified="true" >
<fileset dir="images" includes="**/*.*" />
</copy>
<copy todir="tmp/war/javascript" preservelastmodified="true" >
<fileset dir="javascript" includes="**/*.*" />
</copy>
<!-- copy the web.xml for the target environment into the temp war directory -->
<copy tofile="tmp/war/WEB-INF/web.xml" file="xonfig/$penvironment}.web.xml" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the web.xml file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the web.xml file with their values from ${penvironment}.properties</echo>
<replace
file="tmp/war/WEB-INF/web.xml"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="webxml.hostname" />
</replace>
<copy tofile="tmp/war/WEB-INF/application.properties" file="config/application.properties" preservelastmodified="true" >
</copy>
<!-- now replace all properties in the application.properties file with their values from ${penvironment}.properties -->
<echo>Replacing all properties in the crm.properties file with their values from ${penvironment}.properties</echo>
<replace
encoding="ISO-8859-1"
file="tmp/war/WEB-INF/application.properties"
propertyFile="build/${penvironment}.properties">
<replacefilter token="%%HOSTNAME%%" property="hostname" />
<replacefilter token="%%EMAILADDRESS%%" property="emailaddress" />
<replacefilter token="%%LOGFILE%%" property="logfile" />
<replacefilter token="%%LOGLEVEL%%" property="loglevel" />
<replacefilter token="%%DEFAULTPAGE%%" property="defaultpage" />
<replacefilter token="%%MAILSERVER%%" property="mailserver" />
<replacefilter token="%%SUPPORTEDLANGUAGES%%" property="supportedlanguages" />
<replacefilter token="%%LDAPHOST%%" property="ldaphost" />
<replacefilter token="%%LDAPHOSTBACKUP%%" property="ldaphostbackup" />
<replacefilter token="%%LDAPPORT%%" property="ldapport" />
<replacefilter token="%%LDAPVER%%" property="ldapver" />
<replacefilter token="%%LDAPDC%%" property="ldapdc" />
<replacefilter token="%%LDAPPW%%" property="ldappw" />
<replacefilter token="%%LDAPUSERDC%%" property="ldapuserdc" />
<replacefilter token="%%LDAPSEARCH%%" property="ldapsearch" />
<replacefilter token="%%DATASCHEMA%%" property="dataschema" />
</replace>
<copy tofile="tmp/war/WEB-INF/navigation.properties" file="config/${penvironment}.maxnavigation.properties" preservelastmodified="true" >
</copy>
<copy todir="tmp/war/WEB-INF" preservelastmodified="true" >
<fileset dir="config/bundle" includes="**/*.*" />
</copy>
<!-- Create war file NOT USED right now as we're building this directly into the tomcat directory-->
<!--jar jarfile="tmp/${penvironment}.war" basedir="tmp/war" -->
</target>
<target name="buildtomcat" depends="war,inittomcat,validenvironment" if="penvironment">
<mkdir dir="tmp/tomcatdeploy/${penvironment}" />
<delete>
<fileset dir="tomcat/6.x/logs" includes="**/*.log"/>
</delete>
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat" preservelastmodified="true" >
<fileset dir="tomcat/6.x" includes="**/*.*" />
</copy>
<mkdir dir="tmp/tomcatdeploy/${ppenvironment}/tomcat/logs" />
<mkdir dir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" />
<copy todir="tmp/tomcatdeploy/${penvironment}/tomcat/webapps/${tomcat.contextroot}" preservelastmodified="true" >
<fileset dir="tmp/war" includes="**/*.*" />
</copy>
<!-- now copy the tomcat config files -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml" overwrite="true" file="config/context.xml" preservelastmodified="true" >
</copy>
<!-- now replace all variables in context.xml -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCNAME%%" value="${context.jdbcname}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCUSER%%" value="${context.jdbcuser}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCPASSWORD%%" value="${context.jdbcpassword}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCDRIVER%%" value="${context.jdbcdriver}" />
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/conf/context.xml"
token="%%JDBCURL%%" value="${context.jdbcurl}" />
<!-- now replace all variables / ports in server.xml -->
<copy tofile="tmp/tomcatdeploy/${penvironment}/tomcat/conf/server.xml" overwrite="true" file="config/server.xml" preservelastmodified="true" >
</copy>
<!-- deleted for this example -->
<!-- END replace all variables / ports in server.xml -->
<!-- Now, replace CONTEXT in catalina.sh and catalina.bat -->
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.sh"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
<replace
encoding="ISO-8859-1"
file="tmp/tomcatdeploy/${penvironment}/tomcat/bin/catalina.bat"
propertyFile="/config/${penvironment}.properties">
<replacefilter token="%%CONTEXT%%" property="tomcat.contextroot" />
</replace>
</target>
<target name="deployfullapplication" depends="validenvironment,validserver" >
<antcall target="deploytomcat" />
<antcall target="deployapacheconfig" />
<antcall target="restartapache" />
</target>
<target name="deploytomcat" depends="buildtomcat" >
<!-- zip the tomcatdeploy directoyr up -->
<zip destfile="tmp/${penvironment}.zip" basedir="tmp/tomcatdeploy" />
<!-- now scp to the server -->
<echo>Copying "tmp/${penvironment}.zip" to "${webuser}@${pserver}:/opt/www"</echo>
<scp remoteToDir="${webuser}@${pserver}:/opt/www" file="tmp/${penvironment}.zip" verbose="true" failonerror="true" trust="true">
</scp>
<!-- now kill existing process on the server -->
<antcall target="stoptomcat" />
<!-- now archive the existing deployed application on the server to ${penvironment}.${currenttimestamp} -->
<antcall target="archivetomcat" />
<!-- now uncompress the zipped archive into the deployed location /opt/www/${penvironment} -->
<antcall target="unzipremotetomcat" />
<!-- now start the application -->
<antcall target="starttomcat" />
<!-- cool. thats it. good job. -->
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restarttomcat" depends="validenvironment,validserver" >
<antcall target="stoptomcat"/>
<antcall target="starttomcat"/>
</target>
<target name="starttomcat" unless="pnostart" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="unzipremotetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="archivetomcat" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="stoptomcat" unless="pnokill" if="pserver" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="killtomcatprocessonecall" depends="validenvironment,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="restartapache" depends="validenvironment,validserver" >
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="deployapacheconfig" depends="configapache,validserver">
<!-- all the remote tasks have been deleted in this example.... just to get the idea of what to do. -->
</target>
<target name="configapache" if="penv" depends="init,validenvironment">
<mkdir dir="tmp/apacheconfig" />
<mkdir dir="tmp/apacheconfig/vhosts.d" />
<mkdir dir="tmp/apacheconfig/ssl.crt" />
<mkdir dir="tmp/apacheconfig/ssl.key" />
<mkdir dir="tmp/apacheconfig/extra" />
<mkdir dir="tmp/apacheconfig/passwords" />
<echo>Copying http base config files...</echo>
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.conf" file="config/apache/vhosts/http.conf" preservelastmodified="true" />
<echo>http only replace in http config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%HOSTIP%%" value="*" />
<replacefilter token="%%PORT%%" value="80" />
<replacefilter token="%%PROTOCOL%%" value="http" />
<replacefilter token="%%SSL%%" value="off" />
<replacefilter token="%%SSLCERT%%" value="" />
<replacefilter token="%%SSLKEY%%" value="" />
<replacefilter token="%%SSLCACERT%%" value="" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<condition property="dossl">
<and>
<isset property="${penvironment}.ssl.ip" />
</and>
</condition>
<antcall target="apachessl" />
</target>
<target name="apachessl" if="dossl">
<copy tofile="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf" file="apache/vhosts/http.conf" preservelastmodified="true" />
<echo>https only replace in https config file...</echo>
<replace
encoding="ISO-8859-1"
file="tmp/apacheconfig/vhosts.d/${penvironment}.s.conf"
propertyFile="config/${penvironment}.properties">
<replacefilter token="%%SERVERADMIN%%" property="httpd.serveradmin" />
<replacefilter token="%%LOGFILE%%" property="httpd.logfile" />
<replacefilter token="%%HOSTNAME%%" property="httpd.hostname" />
<replacefilter token="%%ROOT%%" property="httpd.root" />
<replacefilter token="%%PORT%%" value="443" />
<replacefilter token="%%PROTOCOL%%" value="https" />
<replacefilter token="%%SSL%%" property="httpd.ssl" />
<replacefilter token="%%SSLCERT%%" property="https.sslcert" />
<replacefilter token="%%SSLKEY%%" property="https.sslkey" />
<replacefilter token="%%SSLCACERT%%" property="https.sslcacert" />
<replacefilter token="%%CONTEXTROOT%%" property="tomcat.contextroot" />
<replacefilter token="%%AJPPORT%%" property="port.ajp13" />
<replacefilter token="%%JKWORKER%%" property="tomcat.jkworker" />
<replacefilter token="%%DEFAULTPAGE%%" property="http.defaultpage" />
<replacefilter token="%%ERRORPAGE%%" property="http.errorpage" />
</replace>
<copy tofile="tmp/apacheconfig/ssl.crt/${penvironment}.cert" file="config/apache/ssl.crt/${penvironment}.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/verisign.intermediate.cert" file="config/apache/ssl.crt/verisign.intermediate.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.crt/network.solutions.ca.cert" file="config/apache/ssl.crt/network.solutions.ca.cert" failonerror="false" preservelastmodified="true" />
<copy tofile="tmp/apacheconfig/ssl.key/${penvironment}.key" file="config/apache/ssl.key/${penvironment}.key" failonerror="false" preservelastmodified="true" />
</target>
${ant.project.name}的生成从${TSTAMP}在${TODAY}上开始