用Ant实现SVN代码更新,部署(1)

这段Ant脚本主要作用就是:自动从SVN库拉最新的代码,编译、并自动部署到测试服务器。
其中用到了“antsvn”,有3个jar包需要配置进去。

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <projectbasedir="."name="smmail"default="auto">
  3. <!-- all properties are in build.properties -->
  4. <propertyfile="build.properties"/>
  5. <!--svn本身需要的运行库 -->
  6. <pathid="svnant.lib">
  7. <pathelementlocation="${svnjavahl.jar}"/>
  8. <pathelementlocation="${svnant.jar}"/>
  9. <pathelementlocation="${svnClientAdapter.jar}"/>
  10. </path>
  11. <!--java EE 1.6 库 -->
  12. <pathid="javaEE1.6">
  13. <filesetdir="${javaEE1.6.lib}">
  14. <includename="**/*.jar"/>
  15. </fileset>
  16. </path>
  17. <!--项目的classpath库 -->
  18. <pathid="project.classpath">
  19. <pathelementlocation="${build.dir}"/>
  20. <filesetdir="${lib.dir}"/>
  21. </path>
  22. <!--清理项目任务(干掉下载目录,tomcat原来的部署文件) -->
  23. <targetname="clear">
  24. <deletedir="${work.space}"/>
  25. <deletedir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}"/>
  26. <deletedir="${tomcat.home}/webapps/${ant.project.name}"/>
  27. <deletedir="${tomcat.home}/webapps/${ant.project.name}.war"/>
  28. </target>
  29. <!-- load the svn task -->
  30. <taskdefname="svn"classname="org.tigris.subversion.svnant.SvnTask"classpathref="svnant.lib"/>
  31. <!--svn同步任务-->
  32. <targetname="svn"depends="clear">
  33. <mkdirdir="${work.space}"/>
  34. <svnusername="SongWei"password="Song"javahl="false">
  35. <checkouturl="${urlRepos}"destPath="${work.space}"/>
  36. </svn>
  37. </target>
  38. <!--编译-->
  39. <targetname="compile"depends="svn"description="======compile project======">
  40. <echomessage="compile==========>${ant.project.name}: ${ant.file}"/>
  41. <mkdirdir="${build.dir}"/>
  42. <copyincludeemptydirs="false"todir="${build.dir}">
  43. <filesetdir="${java.source}"excludes="**/*.launch, **/*.java, config/*.*"/>
  44. </copy>
  45. <copyincludeemptydirs="false"todir="${build.dir}">
  46. <filesetdir="${java.config}"excludes="**/*.launch, **/*.java"/>
  47. </copy>
  48. <javacincludejavaruntime="true"debug="true"debuglevel="${debuglevel}"destdir="${build.dir}"
  49. source="${source}"target="${target}"encoding="utf-8">
  50. <srcpath="${java.source}"/>
  51. <excludename="config/"/>
  52. <classpath>
  53. <pathrefid="project.classpath">
  54. </path>
  55. <pathrefid="javaEE1.6">
  56. </path>
  57. </classpath>
  58. </javac>
  59. <javacdebug="true"debuglevel="${debuglevel}"destdir="${build.dir}"source="${source}"target="${target}"encoding="utf-8">
  60. <srcpath="${java.config}"/>
  61. </javac>
  62. </target>
  63. <!--压缩,打包-->
  64. <targetname="war"depends="compile"description="======compress j2ee war file======">
  65. <mkdirdir="${dist.dir}"/>
  66. <!--compress j2ee war file-->
  67. <wardestfile="${war.file}"webxml="${web.dir}/WEB-INF/web.xml">
  68. <filesetdir="${web.dir}"/>
  69. <classesdir="${build.dir}"/>
  70. <libdir="${lib.dir}"/>
  71. </war>
  72. </target>
  73. <!--shutdowntomcat-->
  74. <targetname="shutdowntomcat"description="========shutdowntomcat===========">
  75. <execexecutable="${tomcat.home}/bin/shutdown.sh"failonerror="false"></exec>
  76. <sleepseconds="10"/>
  77. </target>
  78. <!--startuptomcat-->
  79. <targetname="startuptomcat"description="========startuptomcat===========">
  80. <sleepseconds="5"/>
  81. <execexecutable="${tomcat.home}/bin/startup.sh"failonerror="false"></exec>
  82. </target>
  83. <!--部署到tomcat下面克-->
  84. <targetname="deploy"depends="war">
  85. <copyfile="${war.file}"todir="${tomcat.home}/webapps"/>
  86. </target>
  87. <!--全自动无敌部署,启动关闭tomcat-->
  88. <targetname="auto"depends="shutdowntomcat,deploy,startuptomcat">
  89. <echomessage="DONE!!!!"/>
  90. </target>
  91. </project>

下面是build.xml指定的properties文件,需要和build.xml放在同一个目录下面
需要指定work.space(svn拉下来代码的存放,已经编译,打包用的临时目录)
tomcat.home(tomcat服务器的根目录,如果是其他服务器,需要修改对应项)
===============================================
build.version=1.0.0

svnant.jar=/usr/java/svn/svnant.jar
svnClientAdapter.jar=/usr/java/svn/svnClientAdapter.jar
svnjavahl.jar=/usr/java/svn/svnjavahl.jar
javaEE1.6.lib=/usr/javaEE-1.6

debuglevel=source,lines
target=1.6
source=1.6

work.space=/home/gmail/workspace
dist.dir=${work.space}

build.dir=${work.space}/WebRoot/WEB-INF/classes
lib.dir=${work.space}/WebRoot/WEB-INF/lib

java.source=${work.space}/src
java.config=${work.space}/src/config

web.dir=${work.space}/WebRoot
resource.dir=${work.space}/resources

tomcat.home=/home/gmail/tomcat6
war.file=${dist.dir}/${ant.project.name}.war

urlRepos=svn://192.168.1.188/product/SMMAIL/Develop

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓