论坛首页 入门技术论坛

如何使用ant

浏览 6846 次
锁定老帖子 主题:如何使用ant
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-30  
第一步:从http://ant.apache.org 下载 apache-ant-1.7.0-bin.zip,解压到你自己的目录,我的:E:\apache-ant-1.7.0

第二步:配置 JAVA_HOME 和 ANT_HOME
配置完成后,打开dos窗口,输入 ant 回车,如果提示:
Buildfile: build.xml does not exist!
Build failed

则说明配置完成

第三步:创建自己的工程
我的工程:test
目录结构:
D:\work\code\test_core\src
D:\work\code\test_core\lib


第四步:编写build.xml
<?xml version="1.0" encoding="UTF-8"?>

<project default="jar" name="test" basedir=".">
  
  <property name="defaulttargetdir" value="./target"></property> 
  <property name="classesdir" value="./target/classes"></property>
  <property name="logsdir" value="./logs"></property>
  <property name="defaulttargetdir" value="./target"></property>
  <property name="final.name" value="test"></property>
  

  <target name="compile" description="o Compile the code" >
    <mkdir dir="${defaulttargetdir}"></mkdir>
    <mkdir dir="${classesdir}"></mkdir>
	<mkdir dir="${logsdir}"></mkdir>

    <javac destdir="${classesdir}" deprecation="true" debug="true" optimize="false" excludes="**/package.html">
      <src>
        <pathelement location="./src"></pathelement>
      </src>
      <classpath>
        <fileset dir="./lib">
          <include name="*.jar"></include>
        </fileset>
      </classpath>
    </javac>
    
  </target>
    
  <target name="jar" description="o Create the jar" depends="compile">
		<copy todir="${classesdir}">
			<fileset dir="./src">
				<include name="**/*.properties" />
			</fileset>
		</copy>    
    <jar jarfile="./lib/${final.name}.jar" excludes="**/package.html" basedir="${classesdir}"></jar>

  </target>
  
  <target name="clean" description="o Clean up the generated directories">
    <delete dir="${classesdir}"></delete>
	<delete file="${lib.dir}/${webapp.name}.jar" />
  </target>



</project>
    



打开dos窗口,进入D:\work\code\test_core\目录,输入ant jar 回车
则test.jar 文件将会被输出到 lib目录下
如果仅仅是编译java源文件,你可以使用 ant compile命令,classes文件将会被输出到 target/classes目录下,如果你在src下有以properties结尾的配置文件,则配置文件将也会被拷贝到 target/classes 目录下,起作用的是:
<copy todir="${classesdir}">
<fileset dir="./src">
<include name="**/*.properties" />
</fileset>
</copy>

web工程:
D:\work\code\test_web\src
D:\work\code\test_web\lib
D:\work\code\test_web\web

build.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="testweb" basedir="." default="">
	<property name="webapp.name" value="testweb" />
	<property name="webapp.version" value="1.0" />
	<property name="lib.dir" value="${basedir}/lib" />
	<property name="dist.dir" value="${basedir}/dist" />
	<!-- The target directory for building the unpacked web application -->
	<property name="build.dir" value="${basedir}/build" />
	<property name="classes.dir" value="${basedir}/build/classes" />
	<!-- The target directory for building the packed web application -->
	<property name="webapp.dist" value="${dist.dir}" />
	<!-- The target directory for building the unpacked web application -->
	<property name="webapp.target" value="${build.dir}/web" />
	<property environment="env" />
	<property name="tomcat.home" value="D:/tomcat-5.5.23" />

	<target name="init" description="defines custom tasks">
	</target>
	  <path id="tomcat.classpath">
		<pathelement location="${tomcat.home}/common/lib/servlet-api.jar"/>
	  </path>
	<!-- Check timestamp on files -->
	<target name="prepare" depends="init" description="create target directories">
		<tstamp>
			<format property="copyright.year" pattern="yyyy" />
		</tstamp>
		<echo message="Preparing target directory '${webapp.target}'" />
		<mkdir dir="${lib.dir}" />
		<mkdir dir="${dist.dir}" />
		<mkdir dir="${build.dir}" />
		<mkdir dir="${classes.dir}" />
		<mkdir dir="${webapp.target}" />
		<mkdir dir="${webapp.target}/WEB-INF" />
		<mkdir dir="${webapp.target}/WEB-INF/lib" />
		<mkdir dir="${webapp.dist}" />

	</target>

	<!-- List of variables in .properties files that will be replaced at
         build time -->
	<filterset id="variables.to.replace">
		<filter token="APPNAME" value="${webapp.name}" />
	</filterset>

	<!-- Copy any resource or configuration files -->
	<target name="compile" depends="prepare" description="compile source directory">
		<echo message="compileing ${webapp.name} ..." />
 
		<copy todir="${classes.dir}">
			<fileset dir="${basedir}/src">
				<include name="**/*.properties" />
 
			
			</fileset>
		</copy>
 		
		
		<javac srcdir="${basedir}/src" destdir="${classes.dir}">
			<include name="**/*.java" />
			<classpath>
				<fileset dir="${basedir}/web/WEB-INF/lib">
					<include name="*.jar">
					</include>
				</fileset>
			</classpath>
            <classpath refid="tomcat.classpath"/>
		</javac>
	</target>
	<!-- Copy any resource or configuration files -->
	<target name="jar" depends="compile" description="jar ">
		<echo message="jar ${webapp.name}.jar  ..." />
		<jar jarfile="${lib.dir}/${webapp.name}.jar">
			<fileset dir="${classes.dir}" includes="**" />
		</jar>	
	</target>
	<!-- Simple alias to package-web -->
	<target name="war" depends="jar" description="alias for package-web">
		<echo message="war {webapp.name} ..." />
		<copy todir="${webapp.target}/WEB-INF">
			<fileset dir="${basedir}/web/WEB-INF">
				<include name="*.xml" />
			</fileset>
		</copy>
		<copy todir="${webapp.target}/WEB-INF/lib">
			<fileset dir="${lib.dir}">
				<include name="**/*.jar" />
			</fileset>
			<fileset dir="${basedir}/web/WEB-INF/lib">
				<include name="**/*.jar" />
			</fileset>
		</copy>

		<copy todir="${webapp.target}">
			<fileset dir="${basedir}/web">
				<include name="**/*.html" />
				<include name="**/*.htm" />
				<include name="**/*.vm" />
				<include name="**/*.jsp" />
				<include name="**/*.txt" />
				<include name="**/*.zip" />
				<include name="**/*.gif" />
				<include name="**/*.jpg" />
				<include name="**/*.png" />
				<include name="**/*.js" />
				<include name="**/*.css" />
				<include name="**/*.htc" />
				<include name="**/*.dwt" />
				<include name="**/*.cert" />
				<include name="**/*.jnlp" />
				<include name="**/*.xml" />
				<include name="**/*.tld" />
				<!--include name="**/*.properties" /-->
			</fileset>
		</copy>
		<echo message="Packaging ${webapp.name}'s web archive file ..." />
		<delete file="${webapp.dist}/${webapp.name}.war" />
		<jar jarfile="${webapp.dist}/${webapp.name}.war">
			<fileset dir="${webapp.target}" includes="**" />
		</jar>

	</target>

	<target name="deploy" depends="compile,war" if="tomcat.home" description="unwar into the servlet container's deployment directory">

		<unwar src="${webapp.dist}/${webapp.name}.war" dest="${tomcat.home}/webapps/${webapp.name}" />
	</target>
	<target name="undeploy" if="tomcat.home" description="undeploy war file to servlet container's deployment dir">
		<echo message="Undeploying webapp from Tomcat" />
		<delete file="${tomcat.home}/webapps/${webapp.war}" />
		<delete dir="${tomcat.home}/webapps/${webapp.name}" />
	</target>
	<target name="clean">
		<echo message="cleaning ${build.dir} and ${dist.dir} ... " />
		<delete dir="${build.dir}" />
		<delete dir="${dist.dir}" />
		<delete file="${lib.dir}/${webapp.name}.jar" />
	</target>
</project>
   发表时间:2008-12-02  
正在学习中,感觉挺难的!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics