`
lxiaodao
  • 浏览: 121528 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

项目工程完整ANT build脚本

阅读更多
    完整的ant脚本,包含javac、javadoc、checkstyle、findbugs等等脚本命令。如果你还没有完整的ant脚本来管理工程,请参考使用此脚本,肯定给项目的管理带来很多好处。Ant脚本在手,管理工具不求。
    静态代码检查工具三剑客,Checkstyle、findbugs、pmd的task都包含了,呵呵。请注意看清楚命令中的版本,这三个工具都可以从网络下载。
    目录的结构个人喜好不一样,如果你的目录结构和我的不一致,请修改脚本中对应的参数。
    目录结构说明图:
   

Ant脚本如下:
  
   <?xml version="1.0" encoding="UTF-8"?>
<project name="Framework" default="build" basedir=".">
<!-- 
src:java source code
test:java test source code folder
resources:configuration file folder

dist:The jar and classes. 
   -classes 
   
report:Test result report and checkstyle report folder. 
   -checkstyle 
   -tests 
   -findBugs 
   
doc:Do not delete the folder. 
    Javadoc and checksyle configuration files. 
   -javadoc
   -pmd 
   -codestyle  
   -findBugs 
-->

	<property name="src.dir" value="${basedir}/src"/>

	<property name="lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"/>
	<property name="test.lib.dir" value="${basedir}/testlib"/>

	<property name="dist.dir" value="${basedir}/dist"/>
	<property name="dist.classes" value="${dist.dir}/classes"/>

	<property name="docs.dir" value="${basedir}/doc"/>
	<property name="report.dir" value="${basedir}/report"/>

	<property name="jar.file" value="framework-core-1.0.jar"/>

	<!-- All Need jar-->
	<path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${test.lib.dir}">
			<include name="*.jar" />
		</fileset>
	</path>

	<target name="clean">
		<delete dir="${dist.dir}" excludes="**/.svn" />
		<delete dir="${report.dir}" excludes="**/.svn" />
		<delete dir="${dist.classes}" excludes="**/.svn" />
	</target>

	<target name="prepare" depends="clean" description="Create the target directories">
		<mkdir dir="${dist.dir}" />
		<mkdir dir="${report.dir}" />
		<mkdir dir="${report.dir}/tests" />
		<mkdir dir="${report.dir}/checkstyle" />
		<mkdir dir="${dist.classes}" />

	</target>
	<!-- 
	    =================================src下面java文件到指定class目录=====================	
	    请注意一些配置文件需要全部拷贝过去,不要遗漏 
	-->
	<target name="compile" depends="prepare" description="========WEBFUSW COMPILE=====">

		<javac encoding="utf-8" destdir="${dist.classes}" debug="true">
			<src path="${src.dir}" />

			<classpath>
				<path refid="classpath" />
			</classpath>
		</javac>
		<copy todir="${dist.classes}">
			<fileset dir="resources">
				<include name="**/*.*" />				
			</fileset>

		</copy>

	</target>

	<!--=================================  产生javadoc===================== -->
	<target name="javadoc">
		<mkdir dir="${docs.dir}/javadoc" />
		<javadoc encoding="utf-8" sourcepath="${src.dir}" destdir="${docs.dir}/javadoc">
			<classpath refid="classpath"/>
		</javadoc>
		<echo message="...........Javadoc command complete...."/>
	</target>
	<!--================================= test and create report===================== -->
	<!-- 
	<target name="tests" depends="compile"> 
	<junit printsummary="on" fork="true" haltonfailure="false" failureproperty="tests.failed" showoutput="true"> 
	<classpath> 
	<fileset dir="${classpath}" includes="**/*.jar" /> 
	<pathelement path="${dist.classes}" /> 
	</classpath> 
	<formatter type="xml" /> 
	<batchtest todir="${report.dir}/tests"> 
	<fileset dir="${dist.classes}"> 
	<include name="**/*Test.*" /> 
	</fileset> 
	</batchtest> 
	</junit> 
	<junitreport todir="${report.dir}/tests"> 
	<fileset dir="${report.dir}/tests"> 
	<include name="TEST-*.xml" /> 
	</fileset> 
	<report format="frames" todir="${report.dir}/tests" /> 
	</junitreport> 
	</target> 
	-->
	<!-- 
	================================= create checkstyle report===================== 
	Please notify:modify the param of checkstyle-frames-errors.xsl and checkstyle-frames.xsl files as below 
	<xsl:param name="output.dir" select="'report/checkstyle'"/> 
	-->

	<taskdef resource="checkstyletask.properties" classpath="${docs.dir}/checkstyle/checkstyle-all-5.0.jar"/>
	<target name="checkstyle" depends="prepare" description="Generates a report of code convention violations.">
		<mkdir dir="${report.dir}/checkstyle" />
		<checkstyle 
	    config="${docs.dir}/checkstyle/checkstyle_checks.xml" 
	    failOnViolation="false">
			<fileset dir="${src.dir}" includes="**/*.java" excludes="**/*Test.java" />
			<formatter type="xml" toFile="${report.dir}/checkstyle/checkstyle_result.xml" />
		</checkstyle>

		<style in="${report.dir}/checkstyle/checkstyle_result.xml" out="${report.dir}/checkstyle/blank_report.html" style="${docs.dir}/checkstyle/checkstyle-frames-errors.xsl"/>

	</target>
	<!-- 
	================================= findBugs report===================== 
	    Run Error:javaheap is over,need modify the configure. 
	-->

	<taskdef name="findbugs" classpath="${docs.dir}/findBugs/findbugs.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
	<property name="findbugs.home" value="${docs.dir}/findbugs" />

	<target name="findbugs" description="Running findBugs......">
		<mkdir dir="${report.dir}/findBugs" />

		<findbugs home="${findbugs.home}" 
	              output="xml" 
	              outputFile="${report.dir}/findBugs/findBugs-report.xml"  jvmargs="-Xmx512m">

			<auxClasspath path="${docs.dir}/findBugs/jakarta-regexp-1.5.jar" />

			<!-- dist.classes 
	      <class location="${docs.dir}/findBugs/bcel.jar" /> 
	       -->
			<class location="${dist.classes}" />
			<!-- show findBugs -->
			<sourcePath path="${src.dir}" />

		</findbugs>
	</target>
	<!-- 
	================================= PMD report===================== 
	PMD means from pmd.sourceforge.net: 
	    Pretty Much Done. 
	    Programming Mistake Detector. 
	    <ruleset>basic</ruleset> 
	-->
	<target name="pmd" description="Running PMD......">
		<mkdir dir="${report.dir}/pmd" />
		<taskdef name="pmd" classpath="${docs.dir}/pmd/pmd-4.2.5.jar" classname="net.sourceforge.pmd.ant.PMDTask"/>
		<pmd shortFilenames="true">
			<ruleset>${docs.dir}/pmd/springside3_ruleset.xml</ruleset>

			<formatter type="html" toFile="${report.dir}/pmd/pmd_report.html" linkPrefix="../../doc/javadoc/"/>

			<formatter type="xml" toFile="${report.dir}/pmd/pmd.xml" />
			<fileset dir="${src.dir}">
				<!--<include name="java/lang/*.java"/>-->
			</fileset>
		</pmd>
	</target>

	<!-- 
	================================= JAR Task=====================
	checkstyle,pmd,javadoc,compile 
	${dist.classes} 
	-->
	<target name="jar" depends="compile,checkstyle,pmd,findbugs">
		<jar destfile="${dist.dir}/${jar.file}">
			<fileset dir="${dist.classes}">
				<include name="**/*.class"/>
				<include name="**/*.xml" />
				<include name="**/*.conf" />
				<include name="**/*.sql" />
				<include name="**/*.properties" />
				<include name="**/*.dtd" />
				<exclude name="**/*Test.class" />
				<exclude name="**/Test*.class" />
			</fileset>

		</jar>
	</target>
	<target name="build" depends="jar,javadoc" description="build project" />
</project>



  • 大小: 12.5 KB
1
0
分享到:
评论
2 楼 lxiaodao 2010-01-15  
静态检查三个工具任意选择,我知道有公司三个工具都用起来了的,代码质量起码让人比较放心。
JUNIT加进去很容易,脚本里面只是注释了。
1 楼 scholers 2010-01-14  
不错,
静态检查的MS太多了吧?

最好能整合进去JUNIT单元测试,作为动态检查的一种。

相关推荐

    ant build脚本代码

    在压缩包文件"antbuild"中,可能包含了示例的Ant构建文件build.xml,以及可能用于多渠道打包的配置文件或脚本。通过查看这些文件,读者可以更直观地了解Ant在实际项目中的应用方式。 总之,Ant Build脚本是一种强大...

    java ant build脚本 用于增量更新和打包

    java ant build脚本 用于增量更新和打包

    java项目ant打包脚本

    综上所述,`java项目ant打包脚本`是Java开发过程中不可或缺的一部分,它通过Ant工具和`build.xml`配置文件实现了项目的自动化构建,提高了开发效率并确保了构建的一致性。理解并熟练掌握Ant打包脚本的编写和使用,...

    android ant build脚本代码

    本篇文章将详细解析`Android Ant build`脚本代码,以及如何实现自动化多渠道打包和自定义任务打包。 `Ant` 是Apache组织提供的一个Java项目构建工具,它基于XML来定义构建过程,具有高度可配置性和可扩展性。在...

    jenkins+ant的build脚本

    用于jenkins+ant部署jmeter脚本,用于jenkins+ant部署jmeter脚本,

    gwt_ant_build脚本研习

    gwt_ant_build脚本研习 目录 build.xml源文件 构建工程war的分析 自定义的build工程文件

    一个常用的ant的build.xml

    Ant是基于XML的,它的核心在于`build.xml`文件,这个文件是项目的构建脚本,详细定义了构建过程中的各种任务和依赖关系。 标题“一个常用的ant的build.xml”暗示了我们讨论的是一个标准且常见的Ant构建配置文件。...

    常用的ANT蚂蚁脚本

    ANT蚂蚁脚本是一种基于XML的构建工具,广泛用于Java项目的自动化构建、编译、测试和部署等任务。在Java开发中,ANT被视为Makefile的替代品,尤其在Maven流行之前,它是Java项目的首选构建工具。现在,尽管Maven和...

    生成ANT所需要的Build,xml文件

    总结来说,这个Python程序gen1.py旨在简化Java开发中的ANT配置过程,通过自动分析项目结构和生成相应的build.xml文件,从而提高开发效率。了解ANT的基本概念、XML配置语法以及如何利用类似gen1.py的工具,对于Java...

    ant build.xml 使用实例

    Apache Ant 是一个广泛使用的Java构建工具,它以XML格式定义构建脚本,即`build.xml`文件。这个文件包含了构建项目的整个流程,从编译源代码到生成最终的可执行或部署包。下面我们将深入探讨`build.xml`的使用以及...

    ant脚本-build.xml

    ant脚本例子,一个build.xml模板, 修改后直接运行。

    Java Ant build详解

    总结,Java Ant build是Java项目自动化构建的重要工具,通过理解`build.xml`中的各个元素,我们可以更好地控制和管理项目的构建过程,确保代码的编译、测试和打包等工作高效、准确地完成。学习和掌握Ant构建,对于...

    ant的build构建脚本

    ant脚本构建工具,有详细的注释、用于构建程序war包,执行编译、修改、拷贝、远程上传程序war包、远程发布程序、远程重启服务器(tomcat)

    分享一个项目的Ant脚本配制

    标题中的“分享一个项目的Ant脚本配置”表明我们将探讨的是如何使用Apache Ant工具来构建和管理Java项目。Ant是开源的构建工具,广泛应用于Java项目,它可以自动化编译、打包、测试等开发流程。 在描述中提到的...

    teamcity-ant脚本.rar

    在TeamCity中,Ant脚本扮演着至关重要的角色,因为Ant是Java项目常用的构建工具,能够定义和执行构建过程。下面我们将深入探讨TeamCity与Ant脚本的结合使用及其相关知识点。 1. **Ant简介** Ant是Apache软件基金会...

    ant脚本资料ant

    - **构建文件**:在Ant中,构建过程是通过一个名为`build.xml`的XML文件定义的,这个文件包含了所有构建任务和它们的执行顺序。 - **目标(Target)**:是Ant中的一个关键概念,它代表了一组任务,这些任务按一定...

    Ant和批处理脚本.rar

    例如,Ant可以负责Java项目的构建和测试,而批处理脚本可以用来设置环境变量、启动服务器或者执行系统级别的清理工作。这样的组合既利用了Ant的灵活性和跨平台能力,又发挥了批处理脚本在Windows环境下的便利性。 ...

    ant脚本编译jar

    总结来说,`Ant`脚本编译`JAR`的过程主要包括:定义项目属性,编译源代码,创建`JAR`文件,并可能涉及处理资源文件和设置`JAR`的主类。通过灵活配置`Ant`脚本,我们可以实现自动化构建流程,提高开发效率。

    Ant执行脚本仅供自己参考

    在`antbuild`文件夹中,可能包含了Ant构建脚本(build.xml)以及其他项目资源,如源代码、测试用例、资源配置等。Ant可以通过命令行执行这个脚本,例如: ```bash ant compile ``` 这将根据`build.xml`中定义的`...

    jmeter+ant 持续集成build.xml文件

    jmeter+ant 持续集成build.xml文件,直接使用ant命令执行jmeter脚本文件,得到图形测试报告

Global site tag (gtag.js) - Google Analytics