Ant创建项目模板demo

由于项目中有用到公司自己封装的SDK,那么如果有新的开发人员,可以利用Ant来生成项目的基本架构,这样可以让新人迅速的熟悉项目的基本开发流程。

   这篇文章的话,主要来演示一下,怎么利用Ant将一个初步的项目模版生成。

   

  首先,我们来看一下这个Demo的目录结构:



      Template目录里面存放着java文件(包名/类名.java)

      其中包名和类名都是一个$符号包围的字符串,这些主要是取决你要生成什么名字的项目

 

    现在,再来看看$IVAN_CLASS$.java里面的代码:

   

Java代码 复制代码  收藏代码
  1. package $IVAN_PACKAGE$;   
  2. public class $IVAN_CLASS$   
  3. {      
  4.      ……………………   
  5. }  
package $IVAN_PACKAGE$;
public class $IVAN_CLASS$
{	
     ……………………
}

    里面的代码,也是再项目生成后,会替换成相应的名字.

 

    现在,外面在Template的同级目录下面,建立我们的ant脚本:  build.xml

   

Xml代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="GenFileByTemplate" basedir="." default="generFile">  
  3.     <!-- 接受用户输入 -->  
  4.     <target name="input-args" depends="" description="接受包名输入">  
  5.         <echo message="================="/>  
  6.         <echo message="====开始生成文件====="/>  
  7.         <echo message="================="/>  
  8.            
  9.         <!-- 包名设置 -->  
  10.         <input addproperty="package" message="请输入包名:"/>  
  11.         <condition property="p_name" value="${package}">  
  12.             <not>  
  13.                 <equals arg1="${package}" arg2="" trim="true"/>  
  14.             </not>  
  15.         </condition>  
  16.         <fail unless="p_name" message="包名不能为空^o^"/>  
  17.   
  18.         <!-- 类名设置  -->  
  19.         <input addproperty="classname" message="请输入类名:"/>  
  20.         <condition property="c_name" value="${classname}">  
  21.             <not>  
  22.                 <equals arg1="${classname}" arg2="" trim="true"/>  
  23.             </not>  
  24.         </condition>  
  25.         <fail unless="c_name" message="类名不能为空^o^"/>  
  26.     </target>  
  27.   
  28.        
  29.     <target name="generFile" depends="input-args" description="根据模版生成文件">  
  30.   
  31.         <filterset id="filterfile" begintoken="$" endtoken="$">  
  32.             <filter  token="IVAN_PACKAGE" value="${package}"/>  
  33.             <filter  token="IVAN_CLASS" value="${classname}"/>  
  34.         </filterset>  
  35.   
  36.         <!-- 创建目的目录 -->  
  37.         <mkdir dir="./dist"/>  
  38.   
  39.         <!-- 从一个目录拷贝至另外一个目录 -->  
  40.         <!--执行到这里,会将$IVAN_CLASS$.java文件里面的代码改掉$-->  
  41.         <copy todir="./dist" overwrite="true">  
  42.             <fileset dir="./template">  
  43.                 <include name="$IVAN_PACKAGE$/*.java"/>  
  44.             </fileset>  
  45.             <filterset refid="filterfile"/>  
  46.         </copy>  
  47.            
  48.         <!-- 一下会将文件名跟目录名改掉 -->  
  49.         <move file="./dist/$IVAN_PACKAGE$/$IVAN_CLASS$.java" tofile="./dist/${package}/${classname}.java"/>  
  50.         <delete dir="./dist/$IVAN_PACKAGE$"/>  
  51.     </target>  
  52. </project>  

 

   这里,我在脚本里面有了详细的注释,如果我们执行ant   ,则可以像项目模版的生成(like appfuse 的生成功能).

  

    这里截图来看

 

    当前的目录结构:

 

 

下面我们来执行脚本,这里会要求你输入你的包名和类名,这个DEMO的包名只是象征性的输入了一个单词

(有可能会输入像,com.xx.xx ,如此的话,就必须产生多级目录,这里只是做演示,则没处理,有兴趣的朋友,可以自己尝试下):

 

 

 

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

 

 

 OK, 这样我们就把项目结构生成出来了,而且还是根据我们输入的参数来产生相应的包和类的。

 

 那么我们java文件的代码是否也同时更改了呢? 让我们来看看java文件的代码:



 

 自此,这个DEMO已经完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值