- 一 安装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