侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

使用Ant构建SSH项目(Intellij IDEA版)

2022-06-14 星期二 / 0 评论 / 0 点赞 / 97 阅读 / 7214 字

学习Ant用的,Intellij IDEA中集成了Ant工具,挺方便的。我这个就是使用Idea集成的Ant构建一个简单的SSH项目的示例吧,欢迎指正和评论,里面有几个问题点,我也会给大家看一看。

. 学习Ant用的,Intellij IDEA中集成了Ant工具,挺方便的。我这个就是使用Idea集成的Ant构建一个简单的SSH项目的示例吧,欢迎指正和评论,里面有几个问题点,我也会给大家看一看。 .


一.项目目录


其中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>
就是删除后新建,这样那两个文件夹就是空的了,里面的内容都删除了。







广告 广告

评论区