<target name="clean" depends="compile">
<jar jarfile="${lib}\${jar}" basedir="${classes}"/>
</target>
<!--Findbugs-->
<target name="findbugs" depends="clean">
<ant antfile="findbugs_build.xml" output="${basedir}\log\findbugs_build-${today}.log" />
</target>
<!--Ant Email-->
<target name="email">
<mail mailhost="192.168.1.212" mailport="25" subject="Test Ant">
<from address="yanshunhua@mantis.com"/>
<to address="yanshunhua@mantis.com"/>
<!--<cc address="limeng@mantis.com"/>-->
<message>This is test</message>
<fileset dir="${basedir}">
<include name="*.bak"/>
</fileset>
</mail>
</target>
<target name="start">
<ant target="findbugs"/>
<ant target="email"/>
</target>
</project>
关于build.xml 简单介绍:
<?xml version="1.0" encoding="UTF-8" ?> 这是xml的头文件
<project> 根节点
<project name="SVN Ant Test" default="start" basedir=".">
default是调用project根下面的某个target,name属性可以自己定义 ,basedir是根目录 注意到是basedir属性可以作为变量
<target>标签 target标签是把每一步功能划分开来
<target name="prepare" depends="init" description="Prepare the dirs for other tasks">
<delete dir="src"/>
<delete dir="classes"/>
<delete dir="lib"/>
<delete dir="log"/>
<mkdir dir="classes"/>
<mkdir dir="lib"/>
<mkdir dir="log"/>
</target>
<!--SVN CheckOut-->
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" />
<target name="checkout" depends="prepare">
<svn username="${svn.user}" password="${svn.password}" javahl="true">
<checkout url="${svn.url}" revision="HEAD" destPath="${local.dir}" />
</svn>
</target>
第一个target作用是删除老文件夹,创建新文件夹,后面一个target是自动从svn上迁出源代码.
我们把代码迁出来了,我们会发现ant自动生成了3个文件夹分别是src,classes,lib。src文件夹是放源码的,classes和lib是空的,作用后面讲。
这一步做好,我们需要面临一个选择:1。直接编译,2。java代码走查;一般正规的需要进行代码走查,于是延伸出了另一个xml文件;
<ant antfile="checkstyle_build.xml" output="${basedir}\log\checkstyle_build-${today}.log" />
这个脚本的作用是调用外部的*_build.xml文件并生成log日志。
ant标签还支持文件的增,删,移动
<delete dir="src"/>,这个就是删除名为src的文件夹. 注意到是每次构建环境需要一个干净的环境。
<!--run-->
<target name="compile" depends="checkstyle">
<javac srcdir="${basedir}\src" destdir="${classes}"/>
</target>
这个就是编译的target,简单不?一行命令(哈哈)。javac是jdk的命令,srcdir="${basedir}\src"这个属性就定义需要编译的远文件路径.destdir="${classes}"这个属性是把编译好的class文件放入指定的目录.
<jar jarfile="${lib}\${jar}" basedir="${classes}"/>
</target>
<!--Findbugs-->
<target name="findbugs" depends="clean">
<ant antfile="findbugs_build.xml" output="${basedir}\log\findbugs_build-${today}.log" />
</target>
<!--Ant Email-->
<target name="email">
<mail mailhost="192.168.1.212" mailport="25" subject="Test Ant">
<from address="yanshunhua@mantis.com"/>
<to address="yanshunhua@mantis.com"/>
<!--<cc address="limeng@mantis.com"/>-->
<message>This is test</message>
<fileset dir="${basedir}">
<include name="*.bak"/>
</fileset>
</mail>
</target>
<target name="start">
<ant target="findbugs"/>
<ant target="email"/>
</target>
</project>
关于build.xml 简单介绍:
<?xml version="1.0" encoding="UTF-8" ?> 这是xml的头文件
<project> 根节点
<project name="SVN Ant Test" default="start" basedir=".">
default是调用project根下面的某个target,name属性可以自己定义 ,basedir是根目录 注意到是basedir属性可以作为变量
<target>标签 target标签是把每一步功能划分开来
<target name="prepare" depends="init" description="Prepare the dirs for other tasks">
<delete dir="src"/>
<delete dir="classes"/>
<delete dir="lib"/>
<delete dir="log"/>
<mkdir dir="classes"/>
<mkdir dir="lib"/>
<mkdir dir="log"/>
</target>
<!--SVN CheckOut-->
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" />
<target name="checkout" depends="prepare">
<svn username="${svn.user}" password="${svn.password}" javahl="true">
<checkout url="${svn.url}" revision="HEAD" destPath="${local.dir}" />
</svn>
</target>
第一个target作用是删除老文件夹,创建新文件夹,后面一个target是自动从svn上迁出源代码.
我们把代码迁出来了,我们会发现ant自动生成了3个文件夹分别是src,classes,lib。src文件夹是放源码的,classes和lib是空的,作用后面讲。
这一步做好,我们需要面临一个选择:1。直接编译,2。java代码走查;一般正规的需要进行代码走查,于是延伸出了另一个xml文件;
<ant antfile="checkstyle_build.xml" output="${basedir}\log\checkstyle_build-${today}.log" />
这个脚本的作用是调用外部的*_build.xml文件并生成log日志。
ant标签还支持文件的增,删,移动
<delete dir="src"/>,这个就是删除名为src的文件夹. 注意到是每次构建环境需要一个干净的环境。
<!--run-->
<target name="compile" depends="checkstyle">
<javac srcdir="${basedir}\src" destdir="${classes}"/>
</target>
这个就是编译的target,简单不?一行命令(哈哈)。javac是jdk的命令,srcdir="${basedir}\src"这个属性就定义需要编译的远文件路径.destdir="${classes}"这个属性是把编译好的class文件放入指定的目录.
本文详细介绍了构建自动化流程的关键步骤,包括使用版本控制工具、编译工具搭建环境,以及如何实现自动编译、代码走查、制作jar包、发送构建完成邮件等操作。通过构建流程的自动化,确保项目的高效稳定运行。
4821

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



