给maven项目加上ant编译

1 篇文章 0 订阅

利用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

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值