使用Ant构建SSH项目(Intellij IDEA版)
2012-11-19 19:36
1096 查看
学习Ant用的,Intellij IDEA中集成了Ant工具,挺方便的。我这个就是使用Idea集成的Ant构建一个简单的SSH项目的示例吧,欢迎指正和评论,里面有几个问题点,我也会给大家看一看。
一.项目目录
其中build和dist文件夹就是用ant生成的,作用在build.xml文件中有注释。
在Idea中的使用:
二.生成文件build.xml
三.配置文件properties.xml
四.几个问题点
1.代码第二行和第四行的作用应该就是将properties.xml文件引入到build.xml文件中,为什么要这么写我也不太清楚。当然,还用另外一种属性配置文件的写法,网上可找到,暂不介绍。
2.build/MySSHTest,它的目的就是建一个可以在tomcat下运行起来的完整项目。使用
这一句的目的是把classes文件打成jar包后,把jar放到lib里面,项目执行时使用这个包。我没有成功,就用了比较土的办法,就是把编译好后的classes文件夹复制到WEB-INF下。
3.复制一个目录下的所有文件及其子目录到另外一个目录
我用的是这种办法,试了网上也就是ant文档里面的那种复制,我试的没有成功。这个也和第二个问题相关。
4.一个比较好的清理文件夹的方法
一.项目目录
其中build和dist文件夹就是用ant生成的,作用在build.xml文件中有注释。
在Idea中的使用:
二.生成文件build.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE project [<!ENTITY properties SYSTEM "./properties.xml">]> <project name="MySSHTest" basedir="." default="war-prepare"> &properties; <!-- 版本构建时间 --> <tstamp> <format property="version.date" pattern="yyyy-MM-dd HH:mm:ss"/> </tstamp> <!-- 编译项目 --> <target name="compile" description="compile javaFile"> <echo level="info">Compiling...</echo> <mkdir dir="${build.dir}/classes"/> <javac srcdir="src" destdir="${build.dir}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" classpathref="compile.classpath"/> </target> <!-- 将编译后的项目打成jar包 --> <target name="jar" depends="compile" description="package JAR"> <jar destfile="${dist.dir}/${webapp.name}-${dist.version}.jar"> <manifest> <attribute name="Created-Time" value="${version.date}"/> <!--<attribute name="Class-Path" value="${webapp.name}-${dist.version}.jar"/>--> </manifest> <fileset dir="${build.dir}/classes"/> </jar> </target> <!-- 生成可以调试的项目 --> <target name="war-prepare" depends="jar" description="prepare WAR"> <mkdir dir="${build.dir}/${webapp.name}"/> <!-- 复制web目录到调试文件夹 --> <copy overwrite="true" todir="${build.dir}/${webapp.name}"> <fileset dir="WebContent"> <include name="**/*.*"/> </fileset> </copy> <!-- 复制hibernate的xml配置文件到classes文件夹 --> <copy overwrite="true" todir="${build.dir}/classes"> <fileset dir="src"> <exclude name="**/*.java"/> </fileset> </copy> <!-- 复制jar包到调试文件夹 --> <copy overwrite="true" todir="${build.dir}/${webapp.name}/WEB-INF/lib"> <fileset dir="${lib.dir}"> <include name="**"/> </fileset> </copy> <!-- 复制classes文件夹到调试文件夹 --> <copy overwrite="true" todir="${build.dir}/${webapp.name}/WEB-INF/classes"> <fileset dir="${build.dir}/classes/"> </fileset> </copy> </target> <!-- 将项目打成war包 --> <target name="war" description="package WAR"> <war destfile="${dist.dir}/${webapp.name}.war" webxml="${build.dir}/${webapp.name}/WEB-INF/web.xml" compress="true"> <fileset dir="${build.dir}/${webapp.name}" includes="**/*.*" excludes="**/web.xml"/> </war> </target> <!-- 清空项目生成文件(build,dist) --> <target name="clean" description="Destroys all generated files of the dirs."> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/> <mkdir dir="${build.dir}"/> <mkdir dir="${dist.dir}"/> </target> </project>
三.配置文件properties.xml
<?xml version="1.0" encoding="UTF-8" ?> <!-- 用于存放.class文件和编译好的项目 --> <property name="build.dir" location="build"/> <!-- 用来存放jar包 --> <property name="lib.dir" location="lib"/> <!-- 用来存放打包后的项目 --> <property name="dist.dir" location="dist"/> <property name="dist.version" value="1.0"/> <property name="webapp.name" value="MySSHTest"/> <property name="compile.debug" value="true"/> <property name="compile.deprecation" value="false"/> <property name="compile.optimize" value="false"/> <path id="compile.classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> <include name="**/*.zip"/> </fileset> </path>
四.几个问题点
1.代码第二行和第四行的作用应该就是将properties.xml文件引入到build.xml文件中,为什么要这么写我也不太清楚。当然,还用另外一种属性配置文件的写法,网上可找到,暂不介绍。
2.build/MySSHTest,它的目的就是建一个可以在tomcat下运行起来的完整项目。使用
<attribute name="Class-Path" value="${webapp.name}-${dist.version}.jar"/>
这一句的目的是把classes文件打成jar包后,把jar放到lib里面,项目执行时使用这个包。我没有成功,就用了比较土的办法,就是把编译好后的classes文件夹复制到WEB-INF下。
3.复制一个目录下的所有文件及其子目录到另外一个目录
<!-- 复制classes文件夹到调试文件夹 --> <copy overwrite="true" todir="${build.dir}/${webapp.name}/WEB-INF/classes"> <fileset dir="${build.dir}/classes/"> </fileset> </copy>
我用的是这种办法,试了网上也就是ant文档里面的那种复制,我试的没有成功。这个也和第二个问题相关。
4.一个比较好的清理文件夹的方法
<!-- 清空项目生成文件(build,dist) --> <target name="clean" description="Destroys all generated files of the dirs."> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/> <mkdir dir="${build.dir}"/> <mkdir dir="${dist.dir}"/> </target>就是删除后新建,这样那两个文件夹就是空的了,里面的内容都删除了。
相关文章推荐
- 使用Ant自动构建Java项目成jar包配置
- 使用ANT构建项目实例2步骤4:lib.properties
- 使用svnant结合svn进行项目构建
- Ant—使用Ant构建简单Java项目(一)
- 使用Ant构建java项目
- 使用Ant构建项目
- 使用ant自动化构建android项目
- 使用Ant构建项目调试代码时无法设置断点
- 使用 Ant 自动生成项目构建版本
- 使用Ant构建项目调试代码时无法设置断点
- 使用ant及IDE配置文件进行Android项目初步的标准化,规范化构建
- Ant—使用Ant构建简单Java项目(三)
- 使用Ant进行项目构建之一:环境搭建 (转载)
- 项目构建工具ant的使用
- Ant—使用Ant构建简单Java项目(二)
- 使用Ant进行项目构建之二:规划我们的项目目录结构 (转载)
- 使用Ant构建简单项目
- 使用Ant编译和构建项目指南
- 使用ant实现svn管理得eclipse插件开发项目的日构建功能(ant1.7.1+svn1.6.3+eclipse3.4.2)
- 使用Ant构建简单项目