ant安装与使用

来源:互联网 发布:钢结构绘图软件 编辑:程序博客网 时间:2024/06/16 12:16
#build脚本#! /bin/sh# 进入到上级目录cd `dirname $0`/..# 获取当前目录为PROJECT_HOMEPROJECT_HOME=`pwd`# 设置JAVA_HOMEexport JAVA_HOME=/usr/cyber/java# 得到CLASSPATHCLASSPATH1=$CLASSPATH# 添加CLASSPATHCLASSPATH=${PROJECT_HOME}/webapps/WEB-INF/conf:${PROJECT_HOME}/webapps/WEB-INF/classes:$CLASSPATH# ant build,-buildfile 参数,是使用自定义的build.xml文件,$@是参数数组/usr/local/ant/bin/ant -buildfile ${PROJECT_HOME}/build/build.xml "$@"# build脚本结束

  如果是在windows环境中,下面是build.bat脚本的一个范例:
# build.bat # 关闭echo显示@echo off# 设置%JAVA_HOME%if "%JAVA_HOME%"=="" set JAVA_HOME=f:/tools/java# 设置%ANT_HOME%if "%ANT_HOME%"==""  set ANT_HOME=f:/tools/ant# 设置PROJECT_HOMEset PROJECT_HOME = %CD%/..set CLASSPATH_BAK=%CLASSPATH%set CLASSPATH=# 执行build%ANT_HOME%/bin/ant.bat -buildfile ../build/build.xml %1 %2 %3 %4 %5 %6 %7 %8 %9

  6、build配置文件
  在${PROJECT_HOME}/build目录下面,需要定义两个文件,一个是build.properties,一个是build.xml
  build.properties文件定义了build的一些常量
# build.propertiesproject        = tangtangversion        = 1.1.1# 采用classic编译,即采用ant编译build.compiler = classic# 采用jikes编译#build.compiler = jikesyear           = 2004debug          = onoptimize       = ondeprecation    = onos             = linuxauthor         = tangtangemail          = syvin_tom@hotmail.comurl            = www.tangtang.org company        = tangtang.org

  build.xml文件是ant编译的主要配置文件,ant功能强大,需要通过相应的配置项来表现。
<?xml version="1.0" encoding="gb2312"?><!-- Build file for project --><project name="cyber" default="jar" basedir=".">  <property file="${user.home}/.ant.properties" />  <!-- ant build properties -->  <property file="build.properties"/>  <property name="build.dir"  value=".."/>  <property name="build.src"  value="${build.dir}/webapps/WEB-INF/src/java"/>  <property name="build.dest" value="${build.dir}/webapps/WEB-INF/classes"/>  <property name="build.lib"  value="${build.dir}/webapps/WEB-INF/lib"/>  <property name="build.ext"  value="./lib"/>  <property name="build.tpl"  value="${build.dir}/webapps/WEB-INF/templates"/>  <property name="build.encoding" value="gb2312"/>    <property name="src.java.dir" value="../src/java"/>  <property name="javadoc.destdir" value="../docs/api"/>  <property name="javadoc.link" value="http://www.tangtang.org/java/docs/api/"/>  <property name="final.name" value="${project}-${version}"/>  <property name="dist.root" value="${build.dir}/dist"/>  <property name="dist.dir" value="${dist.root}/${final.name}"/>  <path id="classpath">        <pathelement path="${java.class.path}/"/>    <fileset dir="${build.lib}">          <include name="*.jar"/>    </fileset>        <fileset dir="${build.ext}">          <include name="*.jar"/>    </fileset>      </path>    <property name="classpath" refid="classpath"/>  <!-- =================================================================== -->  <!-- prints the environment                                        -->  <!-- =================================================================== -->  <target name="env">        <echo message="build.compiler = ${build.compiler}"/>    <echo message="java.home = ${java.home}"/>    <echo message="user.home = ${user.home}"/>    <!--echo message="java.class.path = ${java.class.path}"/-->    <echo message="classpath = ${classpath}"/>  </target>  <!-- =================================================================== -->  <!-- Prepares the build directory                                        -->  <!-- =================================================================== -->  <target name="prepare" depends="env">          <tstamp/>    <filter token="year" value="${year}"/>    <filter token="version" value="${version}"/>    <filter token="date" value="${DSTAMP}"/>                <!--    <mkdir dir="${build.dir}"/>    <mkdir dir="${build.dest}"/>    <mkdir dir="${build.src}"/>    -->    <!--  chose a class that's from j2ee.jar -->    <available  classname="javax.sql.DataSource"       property="J2EE.present">       <classpath refid = "classpath"/>     </available>  </target>  <target name="J2EE-error" depends="prepare"  unless="J2EE.present">  <echo>************************************************************  J2EE has not been found and is needed for the target**  you have chosen****  Since CLASSPATH is an evil idea, just link or drop**  a copy of your j2ee.jar into build/lib directory.***********************************************************</echo></target>  <target name="init">      <echo>      build init      build compile      </echo>    <mkdir dir="${build.dir}/data"/>          <mkdir dir="${build.dir}/logs"/>    <mkdir dir="${build.dir}/dist"/>           </target>  <target name="jar" depends="compile">    <mkdir dir="${dist.root}"/>    <delete dir="${dist.root}/${project}-${version}.jar"/>      <jar jarfile="${dist.root}/${project}-${version}.jar">      <fileset dir="${build.dest}">        <include  name="org/tangtang/**"/>        <exclude  name="org/tangtang/test/**"/>              </fileset>         </jar>  </target>  <target name="srcjar" depends="prepare">    <delete dir="${dist.root}/${project}-${version}-src.jar"/>    <jar jarfile="${dist.root}/${project}-${version}-src.jar">      <fileset dir="${build.src}">        <include  name="org/tangtang/**"/>        <include  name="org/tangtang/test/**"/>      </fileset>         </jar>  </target>  <target name="tpl" depends="env">        <jar jarfile="${dist.root}/${project}-${version}-tpl.jar">      <fileset dir="${build.tpl}">        <include  name="tangtang/**"/>      </fileset>    </jar>  </target>    <target name="javadocs">    <mkdir dir="${build.dir}/docs/api"/>    <javadoc      sourcepath="${build.src}"      overview="${build.dir}/docs/overview.html"      packagenames="org.tangtang.*"      destdir="${build.dir}/docs/api"      encoding="${build.encoding}"      author="true"      version="true"      use="true"      link="${javadoc.link}"      windowtitle="${project} ${version} API"      doctitle="${project} ${version} API"      bottom="Copyright &copy; ${year} tangtang.org.  All Rights Reserved."      >      <tag name="todo" description="To Do:"/>    </javadoc>  </target>    <target name="poolman" depends="prepare">    <jar jarfile="${dist.root}/poolman.jar">      <fileset dir="${build.dest}">        <include  name="com/codestudio/**"/>      </fileset>         </jar>  </target>          <target name="nightly" depends="prepare">      <tstamp/>              <jar jarfile="${dist.root}/nightly/${project}-${version}-${DSTAMP}-src.jar">    <fileset dir="${build.src}">        <include  name="org/tangtang/**"/>    </fileset>    </jar>  </target>      <target name="compile" depends="prepare">        <mkdir dir="${build.dest}"/>    <!-- 检查依赖性 -->    <depend srcdir="${build.src}"            destdir="${build.dest}"            cache="${build.dest}">        <classpath refid="classpath"/>    </depend>        <javac srcdir="${build.src}"      destdir="${build.dest}"      debug="${debug}"      deprecation="${deprecation}"      optimize="${optimize}">            <classpath refid="classpath"/>    </javac>  </target>  <target name="clean">    <delete>        <fileset dir="${build.dest}">            <include name="**/*.class"/>        </fileset>    </delete>      </target>  <target name="clean_dist">    <delete>      <fileset dir="${dist.root}" includes="*"/>    </delete>    <delete dir="${dist.dir}" quiet="false"/>      </target>    <target name="deploy" depends="jar">    <mkdir dir="${dist.dir}/data"/>    <mkdir dir="${dist.dir}/logs"/>        <copy todir="${dist.dir}/bin">      <fileset dir="${build.dir}/bin">        <include name="*"/>      </fileset>    </copy>          <fixcrlf srcdir="${dist.dir}/bin" eol="lf" eof="remove"       includes="**/*"       excludes="**/*.bat"      />    <copy todir="${dist.dir}/conf">      <fileset dir="${build.dir}/conf">        <include name="templates/*"/>        <exclude name="*"/>        <exclude name="**/*.bak"/>        <exclude name="**/bak/**"/>       </fileset>    </copy>        <copy todir="${dist.dir}/build">      <fileset dir="${build.dir}/build">        <include name="*"/>        <include name="lib/*"/>        <exclude name="**/*.bak"/>        <exclude name="**/bak/**"/>              </fileset>    </copy>                  <copy todir="${dist.dir}/templates">      <fileset dir="${build.dir}/templates">        <include name="**/*.vm"/>        <exclude name="**/*.bak"/>        <exclude name="**/bak/**"/>      </fileset>    </copy>      <copy todir="${dist.dir}/webapps/html">      <fileset dir="${build.dir}/webapps/html">        <include name="**/*"/>        <exclude name="**/*.bak"/>                <exclude name="**/bak/**"/>      </fileset>    </copy>    <copy todir="${dist.dir}/webapps/applet">      <fileset dir="${build.dir}/webapps/applet">        <include name="**/*"/>        <exclude name="**/*.bak"/>                <exclude name="**/bak/**"/>      </fileset>    </copy>    <copy todir="${dist.dir}/webapps/icons">      <fileset dir="${build.dir}/webapps/icons">        <include name="**/*.gif"/>                <include name="**/*.jpg"/>        <exclude name="**/*.bak"/>        <exclude name="**/bak/**"/>      </fileset>    </copy>        <copy todir="${dist.dir}/webapps/images">      <fileset dir="${build.dir}/webapps/images">        <include name="**/*.gif"/>                <include name="**/*.jpg"/>        <exclude name="**/*.bak"/>        <exclude name="**/bak/**"/>      </fileset>    </copy>      <copy todir="${dist.dir}/webapps/WEB-INF/">      <fileset dir="${build.dir}/webapps/WEB-INF/">        <include name="**/*"/>        <exclude name="classes/**"/>              <exclude name="conf/*"/>        <exclude name="src/**"/>      </fileset>    </copy>      <jar jarfile="${dist.root}/${project}-${version}-war.jar">      <fileset dir="${dist.dir}">        <include  name="**/*"/>      </fileset>    </jar>     </target>  <target name="conf">     <delete>        <fileset dir="${build.dir}/conf" includes="*"/>        <fileset dir="${build.dir}/webapps/WEB-INF/conf" includes="*"/>     </delete>     <filter filtersfile="deploy.properties"/>       <copy todir="${build.dir}/conf" filtering="true">        <fileset dir="${build.dir}/conf/templates">            <include name="*"/>        </fileset>       </copy>         <copy todir="${build.dir}/webapps/WEB-INF/conf" filtering="true">        <fileset dir="${build.dir}/webapps/WEB-INF/conf/templates">            <include name="*"/>        </fileset>       </copy>  </target>  </project>
0 0
原创粉丝点击