第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组。为了提高开发效率,采用这种编译项目的方法。

最近接触到flex项目,采用eclipse自动编译的方法,开发效率极低。于是着手写自己的第一个bulid.xml文件。

(前提,jdk已配置好,此处不再赘述)

入门:下载并配置ant.

下载完成后直接解压到指定目录就ok了,然后配置环境变量。

PATH:C:\Program Files\Apache Software Foundation\apache-ant-1.9.7\bin;

ANT_HOME:C:\Program Files\Apache Software Foundation\apache-ant-1.9.7

配置完成后:cmd 输入ant -version

编译java项目:

首先在项目中新建build.xml  和build.properties(用于属性的设置)文件

build.xml:

build文件主要由两部分组成:project和target,target之间可以有依赖关系,一般web项目,首先清除已经生成的class文件,然后再编译,最后copy到tomcat.

<?xml version="1.0" encoding="UTF-8"?>
<project name="nczsc" default="build.proj" basedir="." >
<property file="build.properties"/>
<target name="info">
<echo message="******************PROJECT:${project}******************"/>
<echo message="******************AUTHOR:${author}******************"/>
</target>
<target name="clean" depends="info">
<echo message="CLEAN PROJECT..."/>
<delete dir="${user.dir}\${classes}\common"/>
<delete dir="${user.dir}\${classes}\util"/>
<delete dir="${user.dir}\${classes}\config"/>
<delete dir="${user.dir}\${classes}\export"/>
<delete dir="${user.dir}\${classes}\vo"/>
<delete dir="${user.dir}\${classes}\com"/>
<delete dir="${user.dir}\${classes}\nczsc"/>
<delete file="${user.dir}\${classes}\log4j.properties"/>
</target> <target name="bulid.common" depends="clean">
<echo message="COMPILE COMMON CLASS..."/> <mkdir dir="${user.dir}\${classes}\util"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}\src\util" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac> <mkdir dir="${user.dir}\${classes}\vo"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}\src\vo" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac> <mkdir dir="${user.dir}\${classes}\common"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}\src\common" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac>
</target> <target name="build.proj" depends="bulid.common">
<echo message="COMPILE PROJECT..."/>
<mkdir dir="${user.dir}\${classes}\com"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath"
srcdir="${user.dir}\src\com" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac> <mkdir dir="${user.dir}\${classes}\config"/>
<copy todir="${user.dir}\${classes}\config">
<fileset dir="${user.dir}\src\config">
</fileset>
</copy> <mkdir dir="${user.dir}\${classes}\export"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}\src\export" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac> <mkdir dir="${user.dir}\${classes}\nczsc"/>
<javac includeantruntime="false" nowarn="on"
source="1.6" target="1.6" deprecation="true" debug="true"
encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}\src\nczsc" destdir="${user.dir}\${classes}">
<compilerarg line="-Xlint:unchecked" />
<compilerarg line="-encoding UTF-8"/>
</javac>
</target>
<target name="copy.tomcat" depends="build.proj">
<echo message="COPY FILE TO TOMCAT..."/>
<copy todir="${tomcat.dir}\webapps\nczsc">
<fileset dir="${user.dir}\WebRoot">
</fileset>
</copy>
</target> <path id="project.classpath">
<fileset dir="${project.dir}\${lib.dir}">
<include name="**\*.jar" />
</fileset>
<fileset dir="${tomcat.dir}/lib">
<include name="*.jar" />
</fileset>
<fileset dir="${ant.dir}">
<include name="**\*.jar" />
</fileset>
</path>
</project>

build.propertes文件中主要用来设置在build文件中引用的变量,以便重复利用。

author=yookoo
project=nczsc
project.dir=D\:\\vs\\050 \u533A\u57DF\u75BE\u63A7\\095 \u8111\u5352\u4E2D\u7B5B\u67E5\u7CFB\u7EDF\\05 \u6E90\u4EE3\u7801\\01nczsc
classes=WebRoot\\WEB-INF\\classes
lib.dir=WebRoot\\WEB-INF\\lib
tomcat.dir=C\:\\Program Files\\Apache Software Foundation\\Tomcat 6.0
ant.dir=C\:\\Program Files\\Apache Software Foundation\\apache-ant-1.9.7

最后,将build文件加入ant中。

然后点击双击ant中的build.proj启动程序。

ANT入门&用ANT编译java项目的更多相关文章

  1. 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq

    使用maven编译Java项目 时间 2014-07-17 17:42:37  Way Lau's Blog 原文  http://www.waylau.com/build-java-project- ...

  2. 使用 Gradle 编译 Java 项目时报错: Could not find Tools.jar

    在使用Android studio进行编译成jar的时候,遇到Gradle 编译错误,听前辈们说是jdk的版本不对,于是乎就更新了一下jdk, 然而可能是我重新安装jdk的时候改变了安装路径, 在pr ...

  3. 使用maven编译Java项目

    摘要: 综述 本文演示了用Maven编译Java项目 需要 时间:15分钟 文本编辑器或者IDE JDK 6 或者更高版本 创建项目 本例主要为了展示Maven,所以Java的项目力求简单. 创建项目 ...

  4. 命令行编译java项目

    命令行编译java项目 项目名: testproj 目录 src -> cn -> busix -> test bin lib 编译项目 cd testproj javac -d . ...

  5. Jenkins 通过 maven 构建编译 JAVA 项目环境

    Jenkins 通过maven 构建编译 JAVA 项目环境 官网下载合适Jenkins版本包: 1.jenkins http://mirrors.jenkins.io/war-stable/ 2.J ...

  6. java ----> 手动编译java项目

    环境: jdk1.8,cmd,notepad++ 创建java工程test,创建文件夹: src classes lib 说明: src 放置.java文件 classes 放置.class文件 li ...

  7. Apache Maven Cookbook(一)maven 使用命令创建、编译java项目

    一.创建 使用命令创建项目分几步: 1.打开命令行窗口,比如cmd,把目录切换至想要创建项目地方. 2.执行如下命令: mvn archetype:generate -DgroupId=com.zua ...

  8. 怎么快速入门一个老的java项目

    作者:eilen著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.有文档肯定先看文档,先看设计文档,产品的.技术的设计文档,接口文档写的好的可以看看,要是写的不好不着急看. 2 ...

  9. eclipse 编译JAVA 项目导入的WEB项目 无法编译问题

    右击你的项目 选择properties  ---->java Build Path--->Default output folder新建一个classes目录就好了 watermark/2 ...

随机推荐

  1. 一个正整数表示为n个连续正整数之和(第1届第2题)

    题目要求 问题描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 编写程序,根据输入的任何一个正整数,找出符合这 ...

  2. python os.system()和os.popen()

    1>python调用Shell脚本,有两种方法:os.system()和os.popen(),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容.>>>hel ...

  3. docker打包centos增加中文支持

    docker打包centos增加中文支持 前言 使用的某个包的返回值,在本机测试时返回结果是中文,结果打包到docker后返回结果变英文了:猜测是系统语言的问题,进入docker测试了一下,发现果然是 ...

  4. 3. ELMo算法原理解析

    1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...

  5. mysql中update+select

    mysql中不支持嵌套查询后更新操作. 但是可以使用inner join来解决自身的更新问题,参考如下例子: update hera_job a inner join( ),'"') as ...

  6. MAC OS查看端口占用情况及杀死进程

    终端命令 sudo lsof -i :9000 COMMAND   PID    USER   FD      TYPE             DEVICE                     ...

  7. VMware 虚拟机安装OSX el capitan 11.12

    今天在虚拟机里装苹果OSX ,参考下文: http://wenku.baidu.com/link?url=eq6lxPfiGPcNbQiFiykJDgYDtdzG238P6_-T8IKxbKyDHX0 ...

  8. Git 删除提交记录

    .Checkout git checkout --orphan latest_branch 2. Add all the files git add -A 3. Commit the changes ...

  9. 【QT】打开文件对话框,选择路径下文件

    0.头文件中加入 public: QString fileName; public slots: void showImage(); 1.添加两个头文件 #include<qfiledialog ...

  10. pixmap和label设置图片自适应大小

    在label中添加pixmap来显示图片时,当图片过大时图片显示不全. 1.这时可以使用pixmap的scared()方法,来设置图片缩放. QPixmap QPixmap.scaled (self, ...