web项目典型的工程目录结构和build.xml

--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、测试覆盖率等。

你可能感兴趣的:(java,数据结构,Web,xml,ant)