1. ant build.xml 中<tstamp>是用于生成时间戳,然后把值赋给property中指定的变量。
build.xml中定义的task,然后按照依赖,执行的先后顺序整理出来
一般顺序,利用available标签检查依赖的jar是否完整。。
然后清除旧的class文件,以及xml等文件。。。。 直接删除文件夹。
然后初始化,创建jar包等文件需要存放的文件夹mkdir,就是把jar包拷贝到你指定的文件夹下。。。
然后创建一些其他需要的文件夹mkdir。。
是用javac命令,编译你的source,并指定编译文件存放的文件夹。(class, properties, xml等)
使用filter标签:例子 <filter token="applicationName" value="{ant.project.name}">
然后因为是web项目,如果一些xml, properties不是在WEB-INF或者WEB-INF/classes下面,再将文件copy到下面。
然后可以选择生成war包。使用<war>标签,指定web.xml文件的位置赋给webxml属性。
将生成的指定的class文件,使用jar标签,生成jar包。
例如:
<jar destfile....../XXX.jar>
<fileset>...</fileset>
<metainf><include name="xxxxx.xml"></matainf>
</jar>
还可以生成ear,通过ear标签
例如:
<ear destfile=".../XXX.ear" appxml="...../application.xml" ....>
</ear>
其中application.xml中格式:
<application...>
<module>
<web>
<web-uri>XXXX.war</web-uri>
<context-root>xxxxx</context-root>
</web>
</module>
</application>
接下来的task,name是install或者别的,可以由hermes调用。
执行的例如 copy以下kshell,python等命令,到指定目录下,一般是bin下。。
然后另一个task,name是createRPM,命令是
使用chmod改变一些文件的权限。
然后执行这个kshell,执行其他命令。。
例如
<target name="createRPM">
<chmod dir="./xxx" perm="ugo+w"... includes="package.spec"> -- 这个文件是rpm使用的,在另外一个文章有介绍。
<chmod dir="./xxx" perm="ugo+rx"... includes=".../sh"/> -- 这脚本利用sed命令,将本地的package.txt,替代某些特殊字符后,重新定向输出到package.spec文件中。
<exec executeable="./xxx/xxx.sh">
<exec executeable="make" dir="XXX" os="Linux" failοnerrοr="true"> -- 这个是找到这个项目的Makefile,然后根据传进来的参数,来执行调用哪些命令。
<arg line="package"/>
</exec>
</target>