`
gogole_09
  • 浏览: 201838 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ant创建项目模版Demo

阅读更多



   由于项目中有用到公司自己封装的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上了解相关的内容。欢迎大家对本文拍拍砖。

   

  • 大小: 7.6 KB
  • 大小: 31.5 KB
  • 大小: 63.8 KB
  • 大小: 13.7 KB
  • 大小: 58.1 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics