--yourproject
--src d
--java d 运行的java源代码
--test d 单元测试的源代码
--configs d 配置文件
--lib d 开发需要的lib(里面通常是运行时不需要的jar)
--build.propertis f (ant的)
--build.xml f (ant)
--document d (项目的设计文档、数据库设计文档等)
--WEB-INF d
--classes d
--lib d (运行时需要的jar,当然开发肯定也需要该lib)
--dist d (打成jar、war的存放路径)
--css d
--js d
--view d (模板文件 。jsp,mv)
--images d
--yourproject
--src d
--java d 运行的java源代码
--test d 单元测试的源代码
--configs d 配置文件
--lib d 开发需要的lib(里面通常是运行时不需要的jar)
--build.propertis f (ant的)
--build.xml f (ant)
--document d (项目的设计文档、数据库设计文档等)
--context
--WEB-INF d
--classes d
--lib d (运行时需要的jar,当然开发肯定也需要该lib)
--dist d (打成jar、war的存放路径)
--css d
--js d
--view d (模板文件 。jsp,mv)
--images d
1.缩进表示目录层次结构
2.d表示是目录
3.f表示普通的文件,非目录
build.properties
##项目名称
project=com-apache-projectName
#项目版本
version=2.6.1
#项目根目录
project.home=.
#存放源文件(.java)目录
src.dir=${project.home}/src
#存放编译后的文件(.class)的目录
classes.dir=${project.home}/context/WEB-INF/classes
#存放jar的目录,这个lib存放的是运行环境时需要到jar
lib.dir=${project.home}/context/WEB-INF/lib
#开发环境需要的jar。比如junit的jar,一些mock
build.lib.dir=lib
#项目jar、war包的存放目录
dist.dir=dist
#配置文件的存放目录,
configs.dir=${src.dir}/configs
build.xml
<?xml version="1.0" encoding="GB2312" ?>
<project name="metis" default="init" basedir=".">
<property file="build.properties" />
<!-- build的classPath -->
<path id="build.classpath">
<fileset dir="${build.lib.dir}" includes="**/*.jar">
</fileset>
</path>
<!-- 运行的classPath -->
<path id="runtime.classpath">
<fileset dir="${lib.dir}" includes="*.jar">
</fileset>
<fileset dir="${build.lib.dir}" includes="*.jar">
</fileset>
</path>
<!--初始化,通常情况就是创建目录 -->
<target name="init">
<mkdir dir="${classes.dir}" />
<mkdir dir="${dist.dir}" />
</target>
<!-- 编译源文件,并且把configs下的配置文件也复制到classes下 -->
<target name="compile" depends="init">
<copy todir="${classes.dir}">
<fileset dir="${configs.dir}">
<include name="*" />
</fileset>
<fileset dir="${src.dir}/resource">
<include name="*" />
</fileset>
</copy>
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="runtime.classpath" debug="true" />
</target>
<!-- 把项目打成jar包,所有编译好的*.class打成一个jar,里面仅仅包含.jar -->
<target name="jar" depends="compile">
<jar jarfile="${dist.dir}/${project}-${version}.jar">
<fileset dir="${classes.dir}">
<include name="com/dukuai/**" />
<exclude name="com/dukuai/**/Test*.class" />
<exclude name="com/dukuai/**/*Tests.class" />
<exclude name="com/dukuai/module/test/**" />
<exclude name="com/dukuai/test/**" />
</fileset>
</jar>
<copy todir="${lib.dir}">
<fileset dir="${dist.dir}">
<include name="${dist.dir}/${project}-${version}.jar" />
</fileset>
</copy>
</target>
<!-- 源码包。 -->
<target name="srcjar">
<jar jarfile="${dist.dir}/${project}-${version}-src.jar">
<fileset dir="${src.dir}/java">
<include name="com/dukuai/**" />
<exclude name="com/dukuai/**/Test*.java" />
<exclude name="com/dukuai/**/*Tests.java" />
<exclude name="com/dukuai/module/test/**" />
</fileset>
</jar>
</target>
<!-- 导出工程,运行的工程,不包含源文件等 -->
<target name="project">
<delete dir="${dist.dir}/${project}-${version}-project.jar" />
<jar jarfile="${dist.dir}/${project}-${version}-project.jar">
<fileset dir="${project.home}">
<include name="bin/**" />
<include name="context/**" />
<include name="doc/**" />
<include name="logs/**" />
<include name="src/**" />
<include name="testcase/**" />
<include name="build.properties" />
<include name="build.xml" />
<include name="INSTALL" />
<include name="README" />
</fileset>
</jar>
</target>
<target name="clean">
<delete dir="${classes.dir}" />
</target>
</project>
通常的工程还要包含其他的target,eg. testcase、测试覆盖率等。