还在为build.xml烦恼?快速掌握编写技巧看这里!

吉云

说起这个 ,我第一次碰到它还真有点懵。

那会儿好像是下了个别人的 Java 代码,或者是比较老的那种项目,解压一看,没看到平时熟悉的 jar 包或者编译好的东西,根目录底下就一个孤零零的 文件。当时就纳闷了,这玩意儿咋用?项目怎么跑起来?

后来捣鼓了一阵子,查了查,才知道这得用一个叫 Ant 的工具来跑。Ant 这东西,算是个元老级的 Java 构建工具了,比后来的 Maven、Gradle 要早不少。

还在为build.xml烦恼?快速掌握编写技巧看这里!

所以第一步,得确保我电脑上有 Ant 环境。 我就去检查了一下。打开那个黑乎乎的命令行窗口(就是 cmd 或者终端),敲了个 ant -version 看看有没有装,装了的版本是要是没装,那就得先去把它装上,配好环境变量啥的,跟配 Java 环境差不多。

环境弄好了之后,接下来就好办了。还是在命令行里,我先用 cd 命令切换到那个放着 文件的项目根目录下面。

然后,直接就敲了一个命令:ant

敲完回车,就看到屏幕上开始刷刷刷地输出一堆信息。通常是先显示用了哪个 文件,然后就开始执行里面定义的任务了。什么“compile”、“jar”之类的字眼会跳出来,表示它正在编译代码、打 jar 包。

第一次跑的时候,有时候会成功,有时候会失败。失败的话,就得看报错信息,猜猜是哪里出了问题。可能是代码有问题,也可能是 里面写的路径或者依赖配置不对。

跑成功之后,通常在项目目录下就会多出来一些文件夹,比如 build 或者 dist 之类的,里面放着编译好的 .class 文件和最终打出来的 .jar 包。

还在为build.xml烦恼?快速掌握编写技巧看这里!

那这个 里面到底写了啥? 我也挺好奇的,就用文本编辑器打开看了看。它就是一个 XML 文件。

打开一看,结构还挺清晰的:

  • 最外面是个 <project> 标签,包着整个构建配置。
  • 里面有很多 <target> 标签。我理解这一个 target 就代表一个构建任务或者步骤。比如常见的有:
  • <target name="compile">:这里面一般是定义怎么编译 Java 代码,用到了 <javac> 标签。
  • 还在为build.xml烦恼?快速掌握编写技巧看这里!

  • <target name="jar">:这里面定义怎么把编译好的 class 文件打成 jar 包,用到了 <jar> 标签。
  • <target name="clean">:这个通常是用来清理之前构建产生的文件,比如删除 build 目录。
  • 还有些 <property> 标签,用来定义一些变量,比如源代码目录、编译输出目录啥的,方便后面引用。

看明白了之后,就知道直接敲 ant 命令,默认是执行 <project> 标签里指定的那个默认 target(通常这个默认 target 会依赖 compile、jar 等)。也可以指定执行某个 target,比如想清理一下,就敲 ant clean;只想编译,就敲 ant compile

有时候别人的项目拿过来,我的环境跟他的不一样,比如 JDK 路径、依赖库的位置不同,我就得手动去修改这个 文件里对应的路径或者配置,然后再运行 ant 命令。

还在为build.xml烦恼?快速掌握编写技巧看这里!

总的来说

我实践下来感觉,这个 就是给 Ant 工具看的一个“构建说明书”。它告诉 Ant 要执行哪些步骤(targets),每个步骤具体怎么做(用各种 Ant 任务标签,像 <javac><jar><copy><delete> 等等)。虽然现在新的项目可能用 Maven 或 Gradle 更多,因为它们能自动管理依赖啥的更方便,但在维护一些老项目,或者某些特定场景下,Ant 和它的 还是挺有用的。熟悉了之后,写起来、改起来也挺直接的。就是这么个过程,从一开始的一头雾水,到后面能看懂、能修改、能用起来,也算是个小小的经验积累。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]