给maven项目加上ant编译

来源:互联网 发布:知乎语录 编辑:程序博客网 时间:2024/06/05 04:00

        • 一 安装Tomcat
        • 二 安装Ant编译工具
          • 下载并安装Ant
          • 配置环境变量
          • 验证ant
        • 三 添加Ant配置文件
          • 下载 maven-ant-tasks-213jar 包
            • A 引入jar包
            • B 目录结构
          • 在项目根目录新建buildxml文件添加编译代码
          • 运行Ant编译器生成war包
            • A 调出IDEA的Ant build面板
            • B 使用default步骤生成war包和doc文件
            • C Ant编译后的目录结构
        • 四 部署到Tomcat

利用Ant进行java项目编译,配合Jenkins实现自动化部署,功能非常强大。
Ant 配置通过xml编写,下面介绍一下如何用Ant编译maven项目:

一、 安装Tomcat

官方地址:http://tomcat.apache.org/download-70.cgi#7.0.78
下载Tomcat包,解压zip包到硬盘,例如: D:\apache-tomcat-7.0.70

二、 安装Ant编译工具

如果使用IDEA开发工具,IDEA中集成了Ant编译器,可以使用内置的Ant编译器,此步可省略。

1. 下载并安装Ant

到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包。将其解压到你的硬盘上,例如:D:\apache-ant-1.8.1

2. 配置环境变量

依次选择:我的电脑->属性->高级->环境变量->系统变量->Path->编辑->变量值,在最前面添加如下内容:
;D:\apache-ant-1.8.1\bin;
然后点击“确定”按钮,完成环境变量的配置。

3. 验证ant

进入命令行cmd.exe,输入 ant 命令, 如果出现如下内容,说明安装成功:
Buildfile: build.xml does not exist!
Build failed

但如果出现如下内容,说明ant环境配置不正确,检查步骤2的环境变量配置是否正确:
'ant' 不是内部或外部命令,也不是可运行的程序或批处理文件。

三、 添加Ant配置文件

1. 下载 maven-ant-tasks-2.1.3.jar

使ant支持编译maven项目,自动下载maven依赖包

A. 引入jar包

到 http://mvnrepository.com 下载此jar包,放到项目中
这里写图片描述

B. 目录结构

这里写图片描述

2. 在项目根目录新建build.xml文件,添加编译代码
<?xml version="1.0" encoding="UTF-8"?><project xmlns:artifact="antlib:org.apache.maven.artifact.ant" name="fisherCoffeeFront" default="0 - default" basedir=".">    <description>Builds, tests, and runs the project dsolrcloud.</description>    <!-- 配置开发环境 -->    <property environment="env"/>    <property name="version" value="1.0"/>    <property name="project" value="fisherCoffeeFront"/>    <property name="package" value="fisherCoffeeFront"/>    <property name="domain" value="net"/>    <!-- 项目源代码目录 -->    <property name="src.dir" location="src/main/java"/>    <!-- javac编译后生成的class文件路径 -->    <property name="build.dir" location="target/ant/classes" />    <!-- 最终生成war包的路径 -->    <property name="dist.dir" location="target/dist"/>    <!-- 项目配置文件路径 -->    <property name="config.dir" location="src/main/resources" />    <!-- 项目生成JavaDoc文件路径  -->    <property name="doc.dir" location="target/ant/javadoc"/>    <!-- 项目web页面路径 -->    <property name="web.root" location="src/main/webapp" />    <!-- maven-ant-tasks 下载maven依赖jar包的存放路径  -->    <property name="lib.dir" location="target/dependency"/>    <!-- 项目测试文件路径 -->    <property name="test.dir" location="src/test/java"/>    <!-- 配置本地Tomcat路径的lib目录 -->    <property name="tomcat.lib.dir" location="D:/apache-tomcat-7.0.70/lib/" />    <path id="classpath">        <fileset dir="${lib.dir}" includes="**/*.jar"/>    </path>    <target name="1 - clean" description="清理ant编译文件">        <delete dir="target" />    </target>    <target name="2 - makedir" description="建立文件夹">        <mkdir dir="${dist.dir}"/>        <mkdir dir="${build.dir}"/>        <mkdir dir="${lib.dir}"/>        <mkdir dir="${test.dir}"/>    </target>    <target name="3 - dependency" depends="2 - makedir" description="配置 ant 自动下载maven的依赖包 end ">        <!-- 引入tomcat的jar包-->        <copydir src="${tomcat.lib.dir}" dest="${lib.dir}" />        <!-- 下载maven依赖-->        <path id="maven-ant-tasks.classpath" path="${basedir}/src/main/webapp/WEB-INF/lib/maven-ant-tasks-2.1.3.jar" />        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />        <artifact:dependencies filesetId="mavenlib" pathId="mavenclasspath" useScope="runtime">            <pom file="pom.xml" />        </artifact:dependencies>        <copy todir="${lib.dir}">            <fileset refid="mavenlib" />            <mapper type="flatten" />        </copy>    </target>    <target name="4 - compile" depends="3 - dependency" description="编译代码">        <!-- 编译所有的Java代码 -->        <javac srcdir="${src.dir}"               destdir="${build.dir}"               encoding="UTF-8"               includeantruntime="no"               excludes="**/test/*,**/test/bean/*,**/*.svn,*.svn"               includes="**/*.java"               source="1.7"               target="1.7"               deprecation="true"               failonerror="true"               debug="true">            <classpath refid="classpath" />        </javac>        <!-- 把所有文件copy到build目录 -->        <copy todir="${build.dir}">            <fileset dir="${config.dir}" includes="**/*"/>        </copy>    </target>    <!-- 生成Javadoc 文档 -->    <target name="6 - javadoc" description="生成Javadoc文档">        <delete dir="${doc.dir}"/>        <mkdir dir="${doc.dir}"/>        <javadoc packagenames="com.bluedream.*" sourcepath="${src.dir}" destdir="${doc.dir}"                 windowtitle="${project} Javadoc" use="yes"                 linksource="no" splitindex="yes" encoding="UTF-8"                 docencoding="GBK" locale="zh_CN">            <classpath refid="classpath"/>            <packageset dir="${src.dir}" defaultexcludes="yes">                <include name="${domain}/${package}/**"/>            </packageset>        </javadoc>    </target>    <target name="5 - package" depends="4 - compile" description="打war包" >        <mkdir dir="${dist.dir}/${version}" />        <tstamp>            <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss"/>            <format property="TIME" pattern="yyMMddHHmm"/>        </tstamp>        <!-- 生成Web配置及部署文件 -->        <war destfile="${dist.dir}/${version}/${project}.v${TIME}.war"             webxml="${web.root}/WEB-INF/web.xml" manifest="${web.root}/META-INF/MANIFEST.MF">            <fileset dir="${web.root}" excludes="${web.root}/WEB-INF/classes/*" />            <classes dir="${build.dir}" />            <lib dir="${lib.dir}" includes="**/*.jar" />        </war>    </target>    <target name="0 - default" depends="1 - clean, 5 - package, 6 - javadoc">    </target></project>
3. 运行Ant编译器生成war包
A. 调出IDEA的Ant build面板

这里写图片描述

B. 使用default步骤生成war包和doc文件

以下是每一步骤的具体功能
这里写图片描述

C. Ant编译后的目录结构

这里写图片描述

四、 部署到Tomcat

复制war包到Tomcat的webapps目录,改名为ROOT.war, 运行Tomcat

原创粉丝点击