听说过Ant的大名,一直没有机会学习和使用。用了一个晚上,网上搜集了一些资料,勉强编译了几个Demo,算是初识Ant吧。
附件中为zhanghongliang_cyj博客提供的资料,写的很好,很详细。大家可以参阅一下。
他的博客地址:http://zhanghongliang-cyj.iteye.com/blog/677292
一些心得:
对一个Ant的门外汉来说,关心的问题其实很简单,就几个而已。
1.Ant是什么,怎么安装
2.Ant的核心是一个xml,xml的格式怎样。
3.Ant执行的流程是什么,和javac的区别和共同点是什么?
4.使用Ant如何编译一个不引用jar包的工程,引用其他jar包的工程又怎样编译?
问题1、2网上很多答案,也可以参考附件。
关于问题3:
Ant和Maven等其他编译工具其实都一样,主要是一个Task的概念,每一个Task的目的就是要达到一个Target。
运行代码,无非就是初始化环境(init)、编译(compile,build)、发布(archive)、打包(archive)、运行(run)。
要完成某一个步骤,必须完成前面的步骤。这一点,无论javac还是ant等工具,过程都是一样的。
只不过通过Ant,你可以在build.xml中按照顺序定义这几个操作,并且通过depends属性,指定这个步骤所依赖的步骤,省去了大部分的重复的操作。
4.使用Ant编译不引入Jar包的工程,很简单。当项目依赖除java的jre以外的一些jar包的时候,编译就出了很多乱子。
为了解决这个问题,参考了zhaoqiangster的博客,他的博客网址如下:http://zhaoqiangster.iteye.com/blog/317085。
结合我的build.xml代码,说明一下。
<?xml version="1.0" ?>
<project name="structured" default="archive" >
<target name="init">
<mkdir dir="build/classes" />
<mkdir dir="dist" />
</target>
<path id="project.classpath">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="compile" depends="init" >
<javac srcdir="src" destdir="build/classes">
<classpath refid="project.classpath"></classpath>
</javac>
<!--the srcdir here notify the java fiels you want to compile-->
</target>
<target name="archive" depends="compile" >
<jar destfile="dist/zhouyangpj.jar" basedir="build/classes" />
</target>
<target name="clean" depends="init">
<delete dir="build" />
<delete dir="dist" />
</target>
</project>
解决引用jar包编译,其实很简单。通过定义path,设定了jar包所在的路径(即lib文件夹),并通过**/*.jar批量引入这个文件夹下所有的jar包。
在编译java文件的时候,在引入jar包的路径,从而保证了编译的正常执行。
如:<classpath refid="project.classpath"></classpath>这段。
至此,4个问题得到解决。
分享到:
相关推荐
本文将深入探讨如何使用`Ant`脚本来编译并创建一个`JAR`文件,以此来理解`Ant`脚本的工作原理和实际应用。 `Ant`是Apache软件基金会开发的一款开源构建工具,它使用XML格式定义构建过程,具有高度可配置性和可扩展...
"ant与eclipse工具配置及使用"指的是将Ant集成到Eclipse这样的开发环境中。在Eclipse中,可以通过"Ant Builder"功能将Ant构建过程与项目开发紧密结合起来,实现代码修改后自动编译、测试等功能。配置Ant包括导入Ant...
在Java开发中,Ant是一个广泛使用的自动化构建工具,它能够帮助开发者编译、打包、测试以及部署应用程序。Ant是基于XML的,通过定义任务(tasks)来执行各种构建过程。在"ant发送邮件依赖jar包.rar"这个压缩文件中,...
当我们有多个jar包相互依赖时,需要将它们合并成一个单一的jar,以便于部署和使用。Ant是一个流行的Java构建工具,它允许我们通过配置XML文件(build.xml)来执行自动化构建任务,包括jar文件的创建和合并。下面我们...
本资源包包含了运行ANT所必需的JAR文件,确保用户能够顺利执行ANT脚本进行项目管理。下面我们将深入探讨ANT以及其中涉及到的关键知识点。 首先,Apache Ant是一个XML驱动的构建工具,它的配置文件通常被称为build....
本文将深入探讨“编译Tomcat源码所需jar包”这一主题,帮助开发者了解如何从源码构建Tomcat,以及在这个过程中需要用到的关键jar包。 首先,我们来了解一下为什么要从源码编译Tomcat。直接下载预编译的二进制版本...
这个"ant1.8全部jar包"包含了Ant 1.8版本的所有核心库文件,这些文件对于理解和使用Ant构建系统至关重要。Ant主要用作自动化Java项目的构建工具,它可以编译源代码、运行测试、打包应用以及执行其他与构建相关的任务...
标题中提到的"ant脚本,打可运行的jar包"是指使用Ant来创建一个包含所有必需依赖的可执行JAR文件。这样的JAR文件通常被称为"fat JAR"或"uber JAR",因为它包含了项目本身的所有类以及任何第三方库,使得可以直接通过...
Apache Ant 是一个开源的构建工具,它主要用于Java项目构建、自动化任务执行,如编译、打包、测试和部署。...无论你是要编译源代码、创建JAR文件,还是部署应用,Ant都能提供一个统一、可定制的解决方案。
Ant使用XML来描述构建过程,包括编译、测试、打包和部署等任务,使得开发者能够通过简单的脚本进行项目构建,而无需深入理解复杂的命令行语法。 **一、Ant的安装与配置** 1. **下载与解压**:首先,你需要从Apache...
总的来说,使用Ant编译Java项目并创建jar包,你需要编写一个包含`<javac>`和`<jar>`任务的构建文件,同时可以利用Ivy管理依赖,Emma生成测试覆盖率报告,以及Ant Contrib中的额外任务来增强Ant的功能。通过这种方式...
综上所述,通过在Ant的构建脚本中适当地配置和使用AspectJ的任务,可以有效地解决打包后class的Aspect问题。这不仅包括正确编译AspectJ源代码,还涉及确保所有必要的AspectJ运行时依赖都被正确打包。这种做法对于...
此外,如果你需要在命令行环境中使用ant.jar,可以编写一个简单的Ant构建文件(build.xml),并使用`unzip`任务来解压缩ZIP文件。例如: ```xml ``` 然后通过命令行运行`ant unzip`即可。 总的来说,利用...
使用Ant实现JSP到Servlet的转换,我们需要配置`<javac>`任务来编译源代码,然后配置`<war>`任务来生成包含编译后的Servlet和相关资源的WAR(Web Application Archive)文件。最后,可以使用`<jar>`任务将WAR文件中...
标题中的“ant将依赖的jar包和classes文件一起打成可执行jar”指的是使用Apache Ant工具来构建一个包含依赖库和编译后类文件的Java应用程序可执行JAR文件。Ant是一个基于XML的构建工具,它允许开发者通过定义任务来...
本文将深入探讨Ant及其与jar包的关系,帮助Java程序员更好地理解和使用这个强大的工具。 首先,让我们理解什么是Ant。Apache Ant是一个由Apache软件基金会开发的Java库和命令行工具,其任务是驱动构建过程。它的...
本篇文章将详细解释如何使用ANT将Java程序打成JAR包。 首先,理解ANT的基本概念是必要的。Apache ANT是一个由Apache软件基金会开发的Java库和命令行工具,其主要任务是驱动构建过程。它的核心概念是构建文件(build...
对于"tomcat7.0.19源码导入Eclipse后,编译缺少的jar包"这个问题,我们需要深入理解Tomcat的构建过程、源码结构以及如何解决缺失的依赖。 首先,Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和Java...
1. 引入 Ant 库:在 build.xml 文件的开头,使用 `<project>` 标签定义项目,并引入 Ant 的 jar 包,通常会用到 `classpath` 或 `classpathref` 来引用 Ant.jar。 ```xml <path id="ant.classpath"> ...
Ant使用属性(Properties)来存储值,这些值可以在整个构建过程中被引用。例如,你可以定义一个属性`src.dir`来表示源代码目录,然后在多个任务中使用这个属性。属性可以通过命令行参数或者在`build.xml`中设置。 ...