由于项目中有用到公司自己封装的SDK,那么如果有新的开发人员,可以利用Ant来生成项目的基本架构,这样可以让新人迅速的熟悉项目的基本开发流程。
这篇文章的话,主要来演示一下,怎么利用Ant将一个初步的项目模版生成。
首先,我们来看一下这个Demo的目录结构:

Template目录里面存放着java文件(包名/类名.java)
其中包名和类名都是一个$符号包围的字符串,这些主要是取决你要生成什么名字的项目
现在,再来看看$IVAN_CLASS$.java里面的代码:
package $IVAN_PACKAGE$;
public class $IVAN_CLASS$
{
……………………
}
里面的代码,也是再项目生成后,会替换成相应的名字.
现在,外面在Template的同级目录下面,建立我们的ant脚本: build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="GenFileByTemplate" basedir="." default="generFile">
<!-- 接受用户输入 -->
<target name="input-args" depends="" description="接受包名输入">
<echo message="================="/>
<echo message="====开始生成文件====="/>
<echo message="================="/>
<!-- 包名设置 -->
<input addproperty="package" message="请输入包名:"/>
<condition property="p_name" value="${package}">
<not>
<equals arg1="${package}" arg2="" trim="true"/>
</not>
</condition>
<fail unless="p_name" message="包名不能为空^o^"/>
<!-- 类名设置 -->
<input addproperty="classname" message="请输入类名:"/>
<condition property="c_name" value="${classname}">
<not>
<equals arg1="${classname}" arg2="" trim="true"/>
</not>
</condition>
<fail unless="c_name" message="类名不能为空^o^"/>
</target>
<target name="generFile" depends="input-args" description="根据模版生成文件">
<filterset id="filterfile" begintoken="$" endtoken="$">
<filter token="IVAN_PACKAGE" value="${package}"/>
<filter token="IVAN_CLASS" value="${classname}"/>
</filterset>
<!-- 创建目的目录 -->
<mkdir dir="./dist"/>
<!-- 从一个目录拷贝至另外一个目录 -->
<!--执行到这里,会将$IVAN_CLASS$.java文件里面的代码改掉$-->
<copy todir="./dist" overwrite="true">
<fileset dir="./template">
<include name="$IVAN_PACKAGE$/*.java"/>
</fileset>
<filterset refid="filterfile"/>
</copy>
<!-- 一下会将文件名跟目录名改掉 -->
<move file="./dist/$IVAN_PACKAGE$/$IVAN_CLASS$.java" tofile="./dist/${package}/${classname}.java"/>
<delete dir="./dist/$IVAN_PACKAGE$"/>
</target>
</project>
这里,我在脚本里面有了详细的注释,如果我们执行ant ,则可以像项目模版的生成(like appfuse 的生成功能).
这里截图来看
当前的目录结构:

下面我们来执行脚本,这里会要求你输入你的包名和类名,这个DEMO的包名只是象征性的输入了一个单词
(有可能会输入像,com.xx.xx ,如此的话,就必须产生多级目录,这里只是做演示,则没处理,有兴趣的朋友,可以自己尝试下):

OK,现在我们再来看目录结构(会产生一个dist目录, 下面有模版中的文件,但是名字都变成你输入的包名和类名了):

OK, 这样我们就把项目结构生成出来了,而且还是根据我们输入的参数来产生相应的包和类的。
那么我们java文件的代码是否也同时更改了呢? 让我们来看看java文件的代码:

自此,这个DEMO已经完成。 大家对ANT有兴趣的,可以去apache上了解相关的内容。欢迎大家对本文拍拍砖。
通过Ant构建工具实现项目模板自动生成,简化新项目搭建流程。文章详细介绍如何配置Ant脚本,根据用户输入的包名和类名动态生成项目结构。
1080

被折叠的 条评论
为什么被折叠?



