当前位置: 代码迷 >> XML/SOAP >> ant配置build.xml 指定多个classpath 编译多个src索引
  详细解决方案

ant配置build.xml 指定多个classpath 编译多个src索引

热度:1218   发布时间:2014-01-25 22:37:26.0
ant配置build.xml 指定多个classpath 编译多个src目录

因为项目需求,需要自动编译,打包源文件。通过eclipse导出功能,不能实现自动?编译,打包。

即决定用ant来完成,(ant可以通过 批处理文件调用)

因为项目架构比较特殊,有path1/src,path2/src,path3/src 多个同级源文件目录。

而且需要多个classpath目录,存放着需要用到的jar包。

在网上搜索,多是简单的ant配置,而后几经折磨,得到如下配置。

可以成功完成需求功能。

?

Xml代码??收藏代码
  1. <?xml?version="1.0"?encoding="GBK"??>??
  2. <!--?=====================================?-->??
  3. <!--?张楠?2010/01/12?-->??
  4. <!--?=====================================?-->??
  5. ??
  6. <!--default="clean"定义ant运行到target??clean这一步结束-->??
  7. <project?name="projectName"?default="clean"?basedir="D:/work/projectName">??
  8. ????<description>projectName系统发布</description>??
  9. ????<!--属性设置-->??
  10. ????<property?environment="env"?/>??
  11. ????<property?name="src.dir"?value="${basedir}/src"?/>??
  12. ????<property?name="jar.file"?value="projectName.jar"?/>??
  13. ????<property?name="java.lib.dir"?value="${env.JAVA_HOME}/lib"?/>??
  14. ????<property?name="build.dir"?value="${basedir}/build"?/>??
  15. ????<property?name="classes.dir"?value="${build.dir}/classes"?/>??
  16. ????<property?name="dist.dir"?value="D:/contrib"?/>??
  17. ??????????
  18. ????<!--?基本编译路径设置?定义多个classpath-->??
  19. ????<path?id="compile.classpath">??
  20. ????????<fileset?dir="${java.lib.dir}">??
  21. ????????????<include?name="tools.jar"?/>??
  22. ????????</fileset>??
  23. ????????<fileset?dir="D:/contrib">??
  24. ????????????<include?name="*.jar"?/>??
  25. ????????</fileset>??
  26. ????</path>??
  27. ??????
  28. ????<!--?运行路径设置?-->??
  29. ????<!--path?id="run.classpath">??
  30. ????????<path?refid="compile.classpath"?/>??
  31. ????????<pathelement?location="${classes.dir}"?/>??
  32. ????</path-->??
  33. ??????
  34. ????<!--?排除java源文件的模式集?-->??
  35. ????<patternset?id="no.java">??
  36. ????????<exclude?name="**/*.java"?/>??
  37. ????</patternset>??
  38. ??????
  39. ????<!--?初始化,建立目录,将多个src目录复制到同一src目录,编译,打包完成后自动清除?-->??
  40. ????<target?name="init"?description="初始化,建立目录,复制文件">??
  41. ????????<mkdir?dir="${classes.dir}"?/>??
  42. ????????<mkdir?dir="${dist.dir}"?/>??
  43. ????????<mkdir?dir="${src.dir}"?/>??
  44. ????????<copy?todir="${src.dir}">??
  45. ?????????????????<fileset?dir="${basedir}/path1/src">??
  46. ????????????????<include?name="**/*.java"?/>??
  47. ?????????????</fileset>??
  48. ????????</copy>??
  49. ????????<copy?todir="${src.dir}">??
  50. ?????????????<fileset?dir="${basedir}/path2/src">??
  51. ??????????????<include?name="**/*.java"?/>??
  52. ???????????</fileset>??
  53. ????????</copy>??
  54. ????????<copy?todir="${src.dir}">??
  55. ?????????????<fileset?dir="${basedir}/path3/src">??
  56. ??????????????<include?name="**/*.java"?/>??
  57. ???????????</fileset>??
  58. ????????</copy>??
  59. ????????<copy?todir="${src.dir}">??
  60. ?????????????<fileset?dir="${basedir}/path4/src">??
  61. ??????????????<include?name="**/*.java"?/>??
  62. ??????????</fileset>??
  63. ????????</copy>??
  64. ????????<copy?todir="${classes.dir}">??
  65. ????????????<fileset?dir="${src.dir}">??
  66. ????????????????<patternset?refid="no.java"?/>??
  67. ????????????</fileset>??
  68. ????????</copy>??
  69. ????</target>??
  70. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??
  71. 长期推荐成都知名外企(英语好?C++?JAVA)??
  72. mail?to:hot13399@163.com??
  73. [url]http://woshizn.iteye.com/blog/1195498[/url]??
  74. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??
  75. ????<!--?编译源文件-->??
  76. ????<target?name="compile"?depends="init"?description="编译源文件">??
  77. ????????<javac?srcdir="${src.dir}"?destdir="${classes.dir}"?source="1.5"?target="1.5">??
  78. ????????????<classpath?refid="compile.classpath"?/>??
  79. ????????</javac>??
  80. ????</target>??
  81. ??????
  82. ????<!--?打包类文件?-->??
  83. ????<target?name="jar"?depends="compile"?description="打包类文件">??
  84. ????????<jar?jarfile="${dist.dir}/${jar.file}"?>??
  85. ????????????<fileset?dir="${classes.dir}"?includes="**/*.*"?/>??
  86. ????????</jar>??
  87. ????</target>??
  88. ??????
  89. ????<!--?清理,删除临时目录?-->??
  90. ????<target?name="clean"?depends="jar"?description="清理,删除临时目录">??
  91. ????????<delete?dir="${build.dir}"?/>??
  92. ????????<delete?dir="${basedir}/.settings"?/>??
  93. ????????<delete?dir="${src.dir}"?/>??
  94. ????????<delete?dir="${basedir}/bin"?/>??
  95. ????????<echo?level="info">清理完毕</echo>??
  96. ????</target>??
  97. ??????
  98. ????<!--?从打包后jar的文件里运行?-->??
  99. ????<!--target?name="runjar"?depends="jar"?description="运行jar">??
  100. ????????<java?jar="${dist.dir}/${jar.file}"?fork="yes"?dir="${basedir}"?/>??
  101. ????</target-->??
  102. ??????
  103. ????<!--?运行?-->??
  104. ????<!--target?name="run"?depends="compile"?description="运行">??
  105. ????????<java?classname="powerwind.Sample"?fork="yes"?dir="${basedir}">??
  106. ????????????<classpath?refid="run.classpath"?/>??
  107. ????????????<arg?line="${param.msg}"?/>??
  108. ????????</java>??
  109. ????</target-->??
  110. </project>??
  111. ??
  112. ? ?
  相关解决方案