本文共 2600 字,大约阅读时间需要 8 分钟。
由于项目中有用到公司自己封装的SDK,那么如果有新的开发人员,可以利用Ant来生成项目的基本架构,这样可以让新人迅速的熟悉项目的基本开发流程。
这篇文章的话,主要来演示一下,怎么利用Ant将一个初步的项目模版生成。
首先,我们来看一下这个Demo的目录结构:
Template目录里面存放着java文件(包名/类名.java)
其中包名和类名都是一个$符号包围的字符串,这些主要是取决你要生成什么名字的项目
现在,再来看看$IVAN_CLASS$.java里面的代码:
- package $IVAN_PACKAGE$;
- public class $IVAN_CLASS$
- {
- ……………………
- }
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"/>
-
-
-
- <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已经完成
转载地址:http://bnebi.baihongyu.com/