Ant构建Java项目之第1篇

Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。

  1.project元素

  project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。接下来向读者展示一下project元素的各属性。

  1)name属性

  用于指定project元素的名称。

  2)default属性

  用于指定project默认执行时所执行的target的名称。

  3)basedir属性

  用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的附目录作为基准目录。

  2.target元素

  它为Ant的基本执行单元,它可以包含一个或多个具体的任务。多个target可以存在相互依赖关系。它有如下属性:

  1)name属性

  指定target元素的名称,这个属性在一个project元素中是唯一的。我们可以通过指定target元素的名称来指定某个target。

  2)depends属性

  用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。

  3)if属性

  用于验证指定的属性是否存在,若不存在,所在target将不会被执行。

  4)unless属性

  该属性的功能与if属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target将会被执行。

  5)description属性

  该属性是关于target功能的简短描述和说明。

  3.property元素

  该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>

  property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。

  Ant提供了一些内置的属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致。

  同时,Ant还提供了一些它自己的内置属性,如下:

  basedir:project基目录的绝对路径,该属性在讲解project元素时有详细说明,不再赘述;

  ant.file:buildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml;

  ant.version:Ant的版本,在本文中,值为1.7.0;

  ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;

  ant.java.version:Ant检测到的JDK的版本,在上例运行结果中可看到为1.5。

  下面来看具体的实例。

  1.利用Ant的javac任务来编译java程序

  其中build.xml文件的源码如下:


<?xml version="1.0"?>

<project name="javacTest" default="compile" basedir=".">

<target name="clean">

<delete dir="build"/>

</target>

<target name="compile" depends="clean">

<mkdir dir="build/classes"/>

<javac srcdir="src" destdir="build/classes"/>

</target>

</project>

 运行该build.xml文件,结果如下:


Buildfile: Z:\vAccess_myeclipse\TestAnt\build.xml

clean:

compile:

[mkdir] Created dir: Z:\vAccess_myeclipse\TestAnt\build\classes

[javac] Z:\vAccess_myeclipse\TestAnt\build.xml:9: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

[javac] Compiling 1 source file to Z:\vAccess_myeclipse\TestAnt\build\classes

BUILD SUCCESSFUL

Total time: 2 seconds

  2.使用Ant的java任务运行Java程序

  Ant中可以使用java任务实现运行Java程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml文件的内容如下:


<?xml version="1.0"?>

<project name="javaTest" default="run" basedir=".">

<target name="clean">

<delete dir="build"/>

</target>

<target name="compile" depends="clean">

<mkdir dir="build/classes"/>

<javac srcdir="src" destdir="build/classes"/>

</target>

<target name="run" depends="compile">

<java classname="com.ant.test01.Test01">

<classpath>

<pathelement path="build/classes"/>

</classpath>

</java>

</target>

</project>

  可以看到在控制台的输出:

  ...

  [java] Hello,Amigo

  ...

  3. 使用Ant的war任务打包J2EE Web项目

  配置文件源码如下:


<?xml version="1.0"?>

<project name="antwebproject" default="war" basedir=".">

<property name="classes" value="build/classes" />

<property name="build" value="build" />

<property name="lib" value="WebRoot/WEB-INF/lib" />

<!-- 删除build路径-->

<target name="clean">

<delete dir="build" />

</target>

<!-- 建立build/classes路径,并编译class文件到build/classes路径下-->

<target name="compile" depends="clean">

<mkdir dir="${classes}" />

<javac srcdir="src" destdir="${classes}" />

</target>

<!-- 打war包-->

<target name="war" depends="compile">

<war destfile="${build}/TestAnt.war" webxml="WebRoot/WEB-INF/web.xml">

<!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹-->

<fileset dir="WebRoot" includes="**/*.jsp" />

<!-- 拷贝lib目录下的jar包-->

<lib dir="${lib}" />

<!-- 拷贝build/classes下的class文件-->

<classes dir="${classes}" />

</war>

</target>

</project>

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-07 12:31:36

Ant构建Java项目之第1篇的相关文章

Ant构建Java项目之第2篇

实例1:实现自定义Ant任务 其中FileSorter文件的源码如下: package com.ant.test02; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.Collecti

maven构建-求助:Maven构建java项目时出错

问题描述 求助:Maven构建java项目时出错 这个项目以前是用Ant构建的,现在转用Maven了.报错如下:An Ant BuildException has occured: You must not specify nested elements when using refid. 构建过程如下: 这个项目的pom.xml文件如下: <project> <modelVersion>4.0.0</modelVersion> <groupId>aopme

Spring Boot 项目构建 之 使用 Gradle 构建 Java 项目(Building Java Projects with Gradle)

Table of contents What you'll build What you'll need How to complete this guide Set up the project Install Gradle Find out what Gradle can do Build Java code Declare dependencies Build your project with Gradle Wrapper Summary Tags gradle Concepts and

使用 Ant 构建 Liferay Theme的详细过程

记录今天吧Liferay项目从Ant切换到Maven的教训吧. 为了明天的Demo,我们吧所有原来用Ant构建的Liferay项目全部切换到了Maven,结果在把Maven构建的某个theme应用部署到Liferay服务器时始终看不到效果.我忙活了半个小时,才发现了原因,是因为_diffs下面的内容根本就没有复制到Theme根目录中. 因为我们以前都是用Ant来打包和部署的,而Liferay的Ant脚本会自动的把_diffs下面的所有资源都merge到外层(也就是theme应用根目录下).我们当

《Java和Android开发实战详解》——2.2节构建Java应用程序

2.2 构建Java应用程序Java和Android开发实战详解照第1章介绍安装和设置JDK执行环境后,就可以在Windows操作系统的"命令提示符"窗口或Eclipse IDE开发Java应用程序. 2.2.1 构建第一个Java程序首先,我们使用Windows操作系统下的记事本和"命令提示符"窗口来构建.编译和执行Java应用程序,其基本步骤如下所示: step01使用记事本或其他文本编辑工具构建Java源代码文件,扩展名为.java. step03step02

手动利用Apache Ant构建部署自己的Java项目

虽然Eclipse从3.0开始已经继承了Ant插件,大家的项目可以自动构建 部署,此篇文章看也没多大用处,但是手动去自己使用以下 Ant来构建自己的Java项目也是一件有意义的事情,虽然现在已经没用人用Javac Java命令行的方式 来搞程序.... Ant是Apache基金项目下的一个工具,在Apache官方给出的解释 是      一个帮助我们构建软件的 Java库和命令行工具 . Apache Ant is a Java library and command-line tool tha

java android开发-在解决构建路径错误之前不能构建该项目

问题描述 在解决构建路径错误之前不能构建该项目 JAVA初学者,目前正参考<第一行代码>学习中. 在创建HelloWorld应用的时候出现了如下所示报错,项目图标有感叹号出现. 如图示错误为在解决构建路径错误之前不能构建该项目开发-在解决构建路径错误之前不能构建该项目-构建android开发环境"> 下图是SDK manager的内容 我没有下载sample的extra.此外最下面的extra有一个broken source package不知道该如何修复.不知道上面问的构建路

如何使用ant对java程序进行构建、编译、打包等

问题描述 最好从ant的安装.配置等开始,到ant对java程序进行构建.编译.打包等,要详细的步骤,谢谢 解决方案

JAVA Eclipse使用Maven构建web项目详解(SSM框架)

tips: 启动项目后,welcome-file的链接即为测试用例 https://github.com/sheep0704/JAVA-SSM-Spring 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId>