`
shihuan830619
  • 浏览: 574229 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ant打包Web工程

web 
阅读更多
build.properties文件内容如下:
project        = Tqla
version        = 1.1.1

build.compiler = modern
[color=green]#build.compiler = classic
#build.compiler = jikes[/color]

year           = 2012
debug          = on
optimize       = on
deprecation    = on

os             = windows
[color=green]# os             = linux[/color]
author         = Jambhala
email          = shihuan830619@163.com
url            = www.shihuan.com.cn 
company        = shihuan


build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>

[color=brown]<!-- build.xml和build.properties文件要放在跟WebRoot平级目录下 -->
<!-- Build file for project -->
<!-- ${basedir}就是TestQuartz工程的名字 -->[/color]
<project basedir="." default="publish" name="TestQuartz">
	
	<property file="${basedir}/build.properties" description="加载ant的properties文件" />
	
    <target name="init" description="设置初始化打war包需要的路径变量">  
        <property name="name" value="TestQuartz"/>  
        <property name="src" value="${basedir}/src"/>  
        <property name="lib" value="${basedir}/WebRoot/WEB-INF/lib"/>  
        <property name="webapp" value="${basedir}/WebRoot"/>  
        <property name="packages" value="com.*"/>  
          
        <property name="build.src" value="${basedir}/dist/src"/>  
        <property name="build.class" value="${basedir}/dist/WEB-INF/classes"/>  
        <property name="buildwar.dest" value="${basedir}/dist"/>  
        <property name="build.javadocs" value="${basedir}/dist/doc"/>  
        <property name="jar.dest" value="${basedir}/dist/jar"/>  
        <property name="war.dest" value="${basedir}/dist/war"/>
    	<property name="ear.dest" value="${basedir}/dist/ear"/>
    	<property name="zip.dest" value="${basedir}/dist/zip"/>
    	<property name="db.dest" value="${basedir}/dist/db"/>
    	<property name="doc.dest" value="${basedir}/dist/doc"/>
    	<property name="xls.dest" value="${basedir}/dist/xls"/>
          
        <property name="tomcat.home" value="D:\Tomcat 7.0"/>  
        [color=brown]<!--
        <property name="j2eelib.dir" value="D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806\data\libraryset\EE_5"/>    
        -->[/color]
    	
    	<echo message="----------- ${project} ${version} [${year}] ------------" />
    	<echo message="----------- ${src} ------------" />
    	<echo message="----------- ${lib} ------------" />
    	<echo message="----------- ${webapp} ------------" />
    	<echo message="----------- ${build.src} ------------" />
    	<echo message="----------- ${build.class} ------------" />
    	<echo message="----------- ${buildwar.dest} ------------" />
    	<echo message="----------- ${build.javadocs} ------------" />
    	<echo message="----------- ${jar.dest} ------------" />
    	<echo message="----------- ${war.dest} ------------" />
    	<echo message="----------- ${tomcat.home} ------------" />
    	
        <path id="classpath" description="设置依赖jar文件">  
            [color=brown]<!--
            <fileset dir="${j2eelib.dir}">  
                <include name="**/*.jar"/>  
            </fileset>
            -->[/color]  
            <fileset dir="${lib}">  
                <include name="**/*.jar"/> 
            	<exclude name="**/*.bak"/>
            </fileset>  
        </path>
    	
    	<filter token="year" value="${year}" />
	  	<filter token="version" value="${version}" />
	  	<filter token="date" value="${TODAY}" />
	  	<filter token="log" value="true" />
	  	<filter token="verbose" value="true" />
    </target>  
      
    <target name="prepare" depends="init" description="创建打包需要的路径,拷贝源文件到打包路径下">  
        <mkdir dir="${build.src}"/>  
        <mkdir dir="${build.class}"/>  
        <mkdir dir="${buildwar.dest}"/>  
        <mkdir dir="${jar.dest}"/>  
        <mkdir dir="${war.dest}"/>  
    	<mkdir dir="${ear.dest}"/> 
    	<mkdir dir="${zip.dest}"/>
    	<mkdir dir="${db.dest}" />
    	<mkdir dir="${doc.dest}" />
    	<mkdir dir="${xls.dest}" />
        <copy todir="${build.src}">  
            <fileset dir="${src}"/>  
        </copy>
        <copy todir="${buildwar.dest}">  
            <fileset dir="${webapp}"/>  
        </copy>  
    </target>  
      
    <target name="build" depends="prepare" description="编译java文件,拷贝properties属性配置文件到编译后的路径下">  
        <javac srcdir="${build.src}" destdir="${build.class}">  
            <classpath refid="classpath" description="依赖上面path标签设置的jar文件" />  
        </javac>  
        <copy todir="${build.class}">  
            <fileset dir="${build.src}">  
                <include name="**/*.properties"/>
            	<exclude name="**/*.bak"/>
            </fileset>  
        </copy>  
    </target>  
    
	<target name="javadoc" depends="build" description="生成 java 的 API 帮助文档">  
        [color=brown]<!--
        <mkdir dir="${build.javadocs}"/>  
        <javadoc packagenames="${packages}" sourcepath="${build.src}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${name} API" doctitle="${name}">  
            <classpath refid="classpath"/>  
        </javadoc>
        -->[/color]  
    </target>
	
	<target name="antjar" depends="build" description="把部分java文件打成可运行jar包">
		<jar destfile="${jar.dest}/myapp.jar">
			[color=brown]<!--
			<classes dir="${build.class}" />s
			-->[/color]
			<fileset dir="${build.class}">
				[color=brown]<!--
				<include name="com/**" />
				<include name="${build.src}/*.properties" />
				<include name="${build.src}/resources" />
				<exclude name="**/Test.class" />
				-->[/color]
				
			</fileset>
		</jar>
	</target>

	<target name="antear" depends="build" description="EJB工程用">
		[color=brown]<!--
		<ear destfile="${ear.dest}/${name}-${version}.ear" appxml="META-INF/application-j1.3.xml">
	   		<fileset dir="${war.dest}" includes="${name}-${version}.war" />
	  	</ear>
		-->[/color]
	</target>
	
    <target name="antwar" depends="build" description="打war包,不将java文件打入包内">  
        [color=brown]<!-- <delete dir="${build.src}"/> -->[/color]  
        <war warfile="${war.dest}/TestQuartz.war" webxml="${buildwar.dest}/WEB-INF/web.xml">  
            <lib dir="${buildwar.dest}/WEB-INF/lib" />  
            <classes dir="${build.class}" />
        	<fileset dir="${buildwar.dest}">
        		<include name="**/*.conf" />
        		<include name="**/*.html" />
        		<include name="**/*.htm" />
        		<include name="**/*.jsp" />
        		<include name="**/*.js" />
        		<include name="**/*.css" />
        		<include name="**/*.swf" />
        		<include name="**/*.jpg" />
        		<include name="**/*.jpeg" />
        		<include name="**/*.png" />
        		<include name="**/*.gif" />
        		<exclude name="**/*.bak"/>
        	</fileset>
        </war>  
    </target>  
	
	<target name="antzip" depends="antjar" description="打zip文件包">
		[color=brown]<!--
		<zip destfile="${zip.dest}/TestQuartzPro.zip">
	   		<zipfileset dir="${war.dest}" includes="TestQuartz.war" prefix="." />
	   		<zipfileset dir="${db.dest}" includes="*.*" prefix="db" />
	   		<zipfileset dir="${doc.dest}" includes="*.*" prefix="doc" />
			<zipfileset dir="${xls.dest}" includes="*.*" prefix="xls" />
	  	</zip>
		-->[/color]
	</target>
	
	<target name="clean" depends="init" description="清除打包用临时文件">
        
        <delete dir="${build.src}" description="删除dist包里的java文件" />  
        <delete>  
            <fileset dir="${build.class}" includes="**/*.classes" />  
        </delete> 
		
    </target>
	
    <target name="publish" depends="antjar,antear,antwar,antzip,javadoc,clean" description="发布war包至tomcat目录下(注意depends属性里面的内容,name=publish是跟project标签里的default属性同名的)">  
        <copy todir="${tomcat.home}/webapps">  
            <fileset dir="${war.dest}">  
                <include name="**/*.war"/>
            	<exclude name="**/*.bak"/>
            </fileset>  
        </copy> 
    	
    	<delete dir="${buildwar.dest}" description="删除dist目录" />
    	
    </target>  

</project>


下面的代码仅供参考:
把几个任务串起来,弄一个default target

<target name="all">
	<antcall target="antjar" />
	<antcall target="antear" />
	<antcall target="antwar" />
        <antcall target="antzip" />
	<antcall target="javadoc" />
	<antcall target="clean" />
        <antcall target="publish" />
</target>



----------------------------------------------------------------------------------
下面是针对MyEclipse建立的Web工程打war包的build.xml脚本:
<?xml version="1.0" encoding="UTF-8"?>
<!-- <project default="war" basedir="." name="MyYywlProForAnt"> -->
<project default="publish" basedir="." name="MyYywlProForAnt">

<property name="project" value="MyYywlPro" />
<property name="version" value="1.0" />
<property name="year" value="2013" />

<property name="src" value="${basedir}/src" />
<property name="lib" value="${basedir}/WebRoot/WEB-INF/lib" />
<property name="webapp" value="${basedir}/WebRoot" />
<property name="packages" value="com.*" />

<property name="classes" value="${basedir}/build/classes" /> 
    <property name="war.dest" value="${basedir}/build" />
   
    <!-- 这个地方的war包名称最好跟工程名称一致,否则放到Tomcat下发布的时候容易跟Tomcat里的server.xml文件内容设置的不一致 -->
    <property name="ProductName" value="MyYywlPro" />   

<property name="compiler.debug" value="on" />
    <property name="compiler.generate.no.warnings" value="off" />
    <property name="compiler.args" value="-encoding UTF8" />
    <property name="compiler.max.memory" value="400m" />
   
    <property name="tomcat.home" value="D:\Tomcat 6.0" />
    <property name="tomcat.home.lib" value="D:\Tomcat 6.0\lib" />

<patternset id="ignored.files">
        <exclude name="**/.svn/**" />
    </patternset>
    
    <target name="clean"> 
       <delete dir="${war.dest}" /> 
      
<echo message="----------- ${project} ${version} [${year}] ------------" />
    <echo message="----------- ${src} ------------" />
    <echo message="----------- ${lib} ------------" />
    <echo message="----------- ${webapp} ------------" />
    <echo message="----------- ${war.dest} ------------" />
    <echo message="----------- ${tomcat.home} ------------" />
      
       <path id="classpath" description="设置依赖jar文件">
       <fileset dir="${tomcat.home.lib}"> 
                <include name="**/*.jar"/>
                <exclude name="**/*.bak" /> 
            </fileset>
            <fileset dir="${lib}"> 
                <include name="**/*.jar" />
            <exclude name="**/*.bak" />
            </fileset> 
        </path>
       
        <filter token="year" value="${year}" />
  <filter token="version" value="${version}" />
  <filter token="date" value="${TODAY}" />
  <filter token="log" value="true" />
  <filter token="verbose" value="true" />
    </target> 

    <target name="compile" depends="clean"> 
       <mkdir dir="${classes}" /> 
       <javac encoding="utf-8" srcdir="${src}" destdir="${classes}">
       <classpath refid="classpath" description="依赖上面path标签设置的jar文件" />
       </javac>
    </target> 
 
    <target name="war" depends="compile"> 
    <war destfile="${war.dest}/${ProductName}.war" webxml="WebRoot/WEB-INF/web.xml">
            <!-- <fileset dir="${webapp}" includes="**/*.jsp" /> --> 
        <fileset dir="${webapp}">
        <include name="**/*" />
        <exclude name="**/*.bak" />
</fileset> 
      </war> 
    </target>
   
     
    <target name="publish" depends="war" description="发布war包至tomcat目录下(注意depends属性里面的内容,name=publish是跟project标签里的default属性同名的)"> 
        <copy todir="${tomcat.home}/webapps"> 
            <fileset dir="${war.dest}"> 
                <include name="**/*.war" />
            <exclude name="**/*.bak" />
            </fileset> 
        </copy>
    </target>
   
</project>


 
  • 大小: 27.5 KB
  • 大小: 12.5 KB
分享到:
评论

相关推荐

    Ant+Svn打包Web工程

    NULL 博文链接:https://shihuan830619.iteye.com/blog/1820428

    ant编译java web工程build.xml配置文件

    介绍了如何通过ant进行java web工程的编译操作的详细配置

    ant 构建java web工程

    一个简单的java web 编译打包部署

    JAVA_Ant详细介绍与应用

    包含文档和项目实例。 用Ant实现Java项目的自动构建和部署。 JAVA_Ant详细介绍与应用。 Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等...4.使用Ant的war任务打包J2EE Web项目 五.总结

    ant自动化发布脚本

    利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。

    XP开发模式:第一个最简单的Web Servlet应用演示例子

    同时,在使用Ant打包时,需要在打成.war档之后,手动调整jsp文档的位置,也就是需要向压缩档添加 jsp目录,该目录在压缩档与WEB-INF目录同级,最后马jsp文档放到该压缩档的jsp目录下面。 使用时的疑问:在标签中...

    ant1.9资源

    Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。 1. 利用Ant的javac任务来编译java程序 Ant的javac任务用于实现编译Java程序的功能。下面来...

    适应ant的build文档的编写

    新建一个build.xml,放在工程根目录下。... 通常,src存放Java源文件,classes存放编译后的class文件,lib存放编译和运行用到的所有jar文件,web存放JSP等web文件,dist存放打包后的jar文件,doc存放API文档。

    把jsp编译打包成jar

    将工程中的jsp编译成servlet后打成一个jar包,并且自动生成web.xml中的servlet配置。

    ejb3.0 jboss4.2.2的实例

    关于ejb的实例学习,ant进行打包的程序,你把hello文件夹里的hello.jar和Helloweb文件夹里的HelloWeb.war放到jboss中部署,可以运行。你也可以工程放到你的工作空间自己打包

    iuhyiuhkjh908u0980

    用Ant 来编译打包您的Anroid应用 ... 通过 activityCreator.py --out myproject your.package.name.ActivityName 命令可以生成一个project ,生成project下面有个bulid.xml 文件,那个东西就可以帮你打包生成了。 来...

    java 混淆工具,不可逆 jocky 也许是最好的了

    事实上,在Eclipse中使用Jocky时,Jocky也是首先针对所选工程生成Ant的Build文件(默认名称jocky_build.xml),然后再通过Ant完成混淆编译。 以下是Jocky在Eclipse中自动生成的Ant Build 文件示例: ...

    fckedit编辑器

    1 新建一个web工程名字为FCKeditor-java-2.3,然后把FCKeditor-2.3-java.zip解压缩后的代码拷贝到工程目录下 2如果是用的Eclipse,使用快捷键Ctrl+Shift+R 在SimpleUploaderServlet.java和ConnectorServlet.java两...

    完全免费的Java/jsp开发编辑工具FirstJava2

    有内容打包成deploy目录下webtest1.war再复制到Tomcat的webapps目录下. 在工具条上点"运行Tomcat 服务器",就会自动运行Tomcat 服务器. 并自动运行IE浏览器,并自动打开http://localhost:8080/test1 网页. 你还将...

    FirstJava2完全教材

    有内容打包成deploy目录下webtest1.war再复制到Tomcat的webapps目录下. 在工具条上点"运行Tomcat 服务器",就会自动运行Tomcat 服务器. 并自动运行IE浏览器,并自动打开http://localhost:8080/test1 网页. 你还将...

    编写可维护的javascript(英文)

    Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在前端工程师的角度提炼出众多的最佳编程实践,...

    编写可维护的JavaScript(中文)

    Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在前端工程师的角度提炼出众多的最佳编程实践,...

    【重大更新】用SWT/JFace实现的放大镜JZoomer V1.1.1(附源码)

    功能添加: ·添加用户手册中文版V1.1 ·添加用户手册英文版V1.1 ·添加ant编译文件,使用“ant package”即可轻松打包发布文件 ·调整system.properties的排版,方便阅读 3. 核心调整: ...

Global site tag (gtag.js) - Google Analytics