以前使用过ant,但是使用的范围仅仅是代码重用,也就是ant中的copy功能。
但是据我所知,ant有着非常强大的功能,比如自动打包、部署等(说到自动化,高效的项目都需要注重自动化,包括数据表自动生成类文件、自动打包部署等,顺便提醒自己一下,maven的作用不仅仅只是项目管理,实现自动化也有他自己的亮点,比如自动部署)。
记录一下以前使用的简易代码重用。
<?xml version="1.0" encoding="UTF-8"?>
<project name="szAirlines-dev" basedir="." default="copy-to-front">
<target name="copy-to-front" description="复制可重用文件到前台">
<property file="./dev.properties" />
<property name="dir.source" location="${dir.sync.source}"/>
<property name="dir.dest" location="${dir.sync.dest}"/>
<echo level="info" message="copying resources from ${dir.source} to ${dir.dest} ..." />
<!--copy classes-->
<copy todir="${dir.dest}" preservelastmodified="true">
<fileset dir="${dir.source}">
<include name="**/*.java" />
<exclude name="**/dao/**/*.java" />
<exclude name="**/handle/**/*.java" />
<exclude name="**/service/impl/*.java" />
<!--<include name="**/*.class" />
<exclude name="**/dao/**/*.class" />
<exclude name="**/service/impl/*.class" />-->
</fileset>
</copy>
</target>
<target name="copy-to-interface" description="复制可重用文件到接口项目">
<property file="./dev.properties" />
<property name="dir.source" location="${dir.sync.source}"/>
<property name="dir.dest" location="${dir.sync.interdest}"/>
<echo level="info" message="copying resources from ${dir.source} to ${dir.dest} ..." />
<!--copy classes-->
<copy todir="${dir.dest}" preservelastmodified="true">
<fileset dir="${dir.source}">
<include name="**/*.*" />
</fileset>
</copy>
</target>
<target name="copy-to-otaServer" description="复制可重用文件到电商通项目">
<property file="./dev.properties" />
<property name="dir.source" location="${dir.sync.source}"/>
<property name="dir.dest" location="${dir.sync.otadest}"/>
<echo level="info" message="copying resources from ${dir.source} to ${dir.dest} ..." />
<!--copy classes-->
<copy todir="${dir.dest}" preservelastmodified="true">
<fileset dir="${dir.source}">
<include name="**/policy/**/*.*" />
<include name="**/baseinfo/**/*.*" />
</fileset>
</copy>
</target>
</project>
配置参数:
#项目的路径设置,注意,只有这里需要设置相对路径,其他路径的相对路径都是相对webapp的根的
szAirlinesSystem.name=szAirlinesSystem
szAirlinesWebSystem.name=szAirlinesWebSystem
szAirlinesInterfaces.name=szAirlinesInterfaces
otaServer.name=otaServer
szAirlinesSystem.path=../../../../../${szAirlinesSystem.name}
szAirlinesWebSystem.path=../../../../../${szAirlinesWebSystem.name}
szAirlinesInterfaces.path=../../../../../${szAirlinesInterfaces.name}
otaServer.path=../../../../../${otaServer.name}
dir.sync.source=${szAirlinesSystem.path}/src/main/java
dir.sync.dest=${szAirlinesWebSystem.path}/src/main/java
dir.sync.interdest=${szAirlinesInterfaces.path}/src/main/java
dir.sync.otadest=${otaServer.path}/src/main/java
ant通过target 的copy命令达到目标复制的目的。这种做法可以应用到一些分布部署的项目中,比如某个电商项目把前端页面跟后台逻辑解耦分布,如果没有应用到hessian这种技术,前端系统他依然需要载入相关class,这样就可以利用ant-copy脚本使得在后台编写的代码可以重用到前端系统项目中。
以下是一些比较好的文章推荐:
1.使用ant自动打包、部署项目:http://www.cnblogs.com/hoojo/p/ant_increment_svn_diff_diffSummarize.html
2.IBM对ant的教程:http://www.ibm.com/developerworks/cn/java/j-lo-antstructure/