Back

java - ant的基本用法

发布时间: 2017-07-09 21:49:00

ant 跟 rake 一样,就是自动化执行一些命令的脚本, 之所以 不使用 shell, 目的是为了能够让编程语言更加便利的操作这个过程, 所以,没有用 `run_local_command  "echo hi" ` 这样的命令,而是使用了XML语言来做中间性的过度.

eclipse 和所有主流编辑器中,都有对ant的支持:

下面就是个例子,可以直接拿到项目当中使用:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="project" default="run">
	
	<!-- 定义各种变量 -->
    <property name="lib.dir"     value="WebContent/WEB-INF/lib"/>
    <property name="src.dir"     value="src"/>
    <property name="build.dir"   value="build/classes"/>
	<property name="main.class"   value="com.las.controller.AnalysisTextFile"/>
	<property name="target_jar_file"   value="las.jar"/>
	<!-- 定义编译路径 -->
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    	<fileset dir="external_libs" includes="**/*.jar"/>
    </path>
	
	<target name="clean">
	    <delete dir="${build.dir}"/>
	</target>

    <target name="compile">
        <mkdir dir="${build.dir}"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath"/>
    </target>

    <target name="run" depends="jar">
        <java fork="true" classname="${main-class}">
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
        </java>
    </target>
	
	<!-- 打包jar任务 -->
    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="${target_jar_file}" basedir="${build.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main.class}"/>
            </manifest>
        </jar>
    </target>
	

	<!-- web 开发才用的到 -->	
	<target name="package">
		<delete file="Las.war" />
		<war destfile="Las.war">
			<fileset dir="${basedir}\WebContent" />
			<classes dir="build/classes" />
		</war>

	</target>
	<target name="packageThin">
		<delete file="Las.war" />
		<war destfile="Las.war">
			<fileset dir="${basedir}\WebContent" >
				<exclude name="**/*.jar" />
			</fileset>
			<classes dir="build/classes" />
		</war>
	</target>	
	
	
	
	
</project>

Back