Java构建工具ant

2023/05/07 Java 共 1935 字,约 6 分钟

Java构建工具ant

1、什么是ant:ant是构建工具 2、什么是构建:概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3、ant的好处:

  • 跨平台 —因为ant是使用java实现的,所以它跨平台
  • 使用简单 —与ant的兄弟make比起来
  • 语法清晰—同样是和make相比
  • 功能强大—ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。

4、ant的兄弟make:ant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++ ,ant更多应用于Java。当然这不是一定的,但大部分人如此。

build.xml

ant和make需要makefile一样有个配置文件,叫build.xml

配置

例子

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello1.jar"/>
<target name="init">
   <mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
   <javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
   <jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
   <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
<target name="clean">
   <delete dir="${dest}" />
   <delete file="${hello_jar}" />
</target>
<target name="rerun" depends="clean,run">
   <ant target="clean" />
   <ant target="run" />
</target>
</project>

可以配置变量叫property

可以配置target,每个target还可以有依赖depends,depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行 过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个target。

target里还可以嵌套执行其他的target。

每个target都可以手动执行。

变量可以抽成Property文件

比如可以创建一个kv键值对,非xml的all.properties文件,然后build.xml里可以读这个文件当property

<property file="all.properties" /> 

和直接写build.xml效果是一样的

复用build.xml

引用其他的build.xml,这样就不用复制过来了。

<!--include a xml file ,it can be common propery ,can be also a target   -->
<!DOCTYPE project [
<!ENTITY share-variable SYSTEM "file:../include.xml">
]>
<project name="HelloWorld" default="run" basedir=".">
<!--use the include   -->
&share-variable;

这样include.xml里的property和target能给引用它的xml共享。

参考

Search

    Table of Contents