脚本自动化 ant

用ant,shell下也可以用make。

1,ant 是一个自动化编译工具,安装使用。

2,编写build.xml,核心,写明进行哪些操作,删,建,编译,javac,java等,从例子可以看出每个操作都有固定格式,各种语言都有自己的包,下载安装,即可调用对应的api(按格式添加对应参数,执行即可)。各个函数具体内容需要查询使用。

举例如下:

<project name="BE" default="jar" basedir=".">

        <property file="build.properties" />#参数文件

        <!-- Global properties for this build -->
        <property name="jar.name" value="BE" />
        <property name="version" value="SNAPSHOT" />
        <property name="package.name" value="${jar.name}-${version}" />
        <property name="java.debug" value="true" />

        <!-- Directories -->
        < ="build.dir" location="build" />
        <property name="build.cache.dir" location="${build.dir}/cache" />
        <property name="javadoc.dir" location="javadoc" />
        <property name="classes.dir" location="${build.dir}/classes" />
        <property name="dist.dir" location="dist" />
        <property name="dist.java.dir" location="${dist.jar}/java" />

        <property name="jar.file" location="${build.dir}/${jar.name}.jar" />
        <property name="lib.dir" location="${basedir}/lib" />
        <property name="genjar.file" location="${build.dir}/${genjar.name}.jar" />

        <property name="src.dir" location="src" />
        <property name="src.java.dir" location="${src.dir}/java" />

        <target name="init">#建
                <tstamp />
                <!-- Create the build directory structure used by compile -->
                <mkdir dir="${build.dir}" />
                <mkdir dir="${classes.dir}" />
        </target>

        <macrodef name="compile-source">#javac
                <sequential>
                        <!-- Compile the java code from ${src.java} into ${build} -->
                        <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="${java.debug}" debuglevel="lines,vars,source">
                                <classpath>
                                        <fileset dir="./lib">
                                                <include name="**/*.jar" />
                                        </fileset>
                                </classpath>
                        </javac>
                </sequential>
        </macrodef>

        <target name="jar" depends="compile">#jar命令
                <delete file="${jar.file}" />

                <jar jarfile="${jar.file}">
                        <fileset dir="${classes.dir}" />
                        <fileset dir=".">
                                <include name="lib/*.jar" />
                        </fileset>
                </jar>
        </target>


        <target name="jar-all" depends="jar">
        </target>

        <target name="compile" depends="init" description="compile the source">
                <compile-source />
        </target>


        <target name="clean" description="clean up">
                <!-- Delete the ${build} and ${dist} directory trees -->
                <delete dir="${build.dir}" />
                <delete dir="${classes.dir}" />
                <delete dir="${dist.dir}" />
        </target>

</project>

property 指定变量,如路径名,可以直接使用

target 就一个具体的操作,具有独立性,可以依赖另一个depends。具体命令的格式基本一致,主要是参数需要查询后指定。

整体上构成一个project。

运行命令:ant ,后面指定参数如 ant clean ,指定执行target clean 。没有会执行开头default指定的 target:jar。

运行后,ant自动寻找当前目录的build.xml文件。根据其内容,执行相关操作,删除,编译,执行,产生目录,生成文件,完成部署

原文地址:https://www.cnblogs.com/cl1024cl/p/6205565.html