您的位置:首页 > 运维架构 > Apache

Linux下使用Apache Ant自动构建项目

2017-02-11 23:59 369 查看
Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

在线API
doc:【http://tool.oschina.net/apidocs/apidoc?api=ant-1.8.4

一、下载Apache Ant到Linux



下载文件到Linux有两种方法:

①在windows下载好 apache-ant.tar.gz,使用winSCP工具传输到Linux。具体做法参考【http://blog.csdn.net/weixin_36146275/article/details/54268491】

在tar.gz文件所在目录进行解压:

# tar apache-ant-1.10.1-bin.tar.gz
②Linux下使用wget命令直接下载

右击获取下载地址:【http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz】



到Linux下进行下载,当前目录是【/root】目录,下载的文件就在【/root】目录下



在tar.gz文件所在目录进行解压:

# tar apache-ant-1.10.1-bin.tar.gz

二、配置Apache Ant环境变量

配置profile文件:

①搜索出profile所在目录【find / -name profile】

②更改重要文件前作备份【cp /etc/profile profile.bak】

[root@VM_7_253_centos ~]# find / -name profile
/etc/profile
[root@VM_7_253_centos ~]# cp /etc/profile profile.bak
[root@VM_7_253_centos ~]# vi /etc/profile

③编辑profile文件【vi /etc/profile】

添加信息:ANT_HOME表示apache-ant文件夹所在目录
export ANT_HOME=/root/apache-ant-1.10.1
export PATH=.:$ANT_HOME/bin:$PATH

三、Apache ANT构建项目环境

在 /home 目录下创建项目,结构如下:
Hello
|-- build.xml
`-- src
    `-- com
        `-- antDemo
            `-- Hello.java
Hello.java文件输出“Hello world”
class Hello{
public static void main(String args[]){
System.out.println("Hello World!");
}
}


做了如此多的准备工作终于到apache ant相关的操作啦!
编辑build.xml,此链接中有对ant标签的详细介绍【http://blog.csdn.net/yangdayin/article/details/7681567】
<?xml version="1.0" encoding="UTF-8"?>
<project name="Hello" basedir=".">
<property name="source" value="src"/>

<!-- 定义名字dest,值是:classes -->
<property name="destination" value="classes"/>

<!-- 定义一个命令,作用是创建一个文件夹 -->
<target name="init">

<!-- Linux创建文件的命令${引用的目录} -->
<mkdir dir="${destination}"/>

</target>
</project>

执行ant init:
[root@VM_7_253_centos Hello]# ant init
Buildfile: /home/Hello/build.xml

BUILD FAILED
Error reading project file /home/Hello/build.xml: Invalid byte 1 of 1-byte UTF-8 sequence.

Total time: 0 seconds
xml文件解析报错,因为注释中包含了中文,无法正常解析。

解决办法是将build.xml的编码格式改成GBK
<?xml version="1.0" encoding="GBK"?>

再次执行ant init:执行成功,Hello目录下创建了classes文件夹
[root@VM_7_253_centos Hello]# ant init
Buildfile: /home/Hello/build.xml

init:
    [mkdir] Created dir: /home/Hello/classes

BUILD SUCCESSFUL
Total time: 0 seconds
[root@VM_7_253_centos Hello]# ls
build.xml  classes  src



添加target标签,编辑javac命令让其依赖init运行:
<?xml version="1.0" encoding="GBK"?>
<project name="Hello" basedir=".">
<property name="source" value="src"/>

<!-- 定义名字dest,值是:classes -->
<property name="destination" value="classes"/>
<!-- 定义一个命令,作用是创建一个文件夹 -->
<target name="init">
<!-- Linux创建文件的命令${引用的目录} -->
<mkdir dir="${destination}"/>
</target>

<!--定义javac编译命令,依赖init运行-->
<target name="compile" depends="init">
<javac srcdir="${source}" destdir="${destination}" includeantruntime="on"/>
</target>
</project>

执行结果:看到Hello.class已经被编译到classess目录下了
[root@VM_7_253_centos Hello]# ant compile
Buildfile: /home/Hello/build.xml

init:

compile:
    [javac] Compiling 1 source file to /home/Hello/classes

BUILD SUCCESSFUL
Total time: 2 seconds
[root@VM_7_253_centos home]# tree Hello
|-- Hello
|   |-- build.xml
|   |-- classes
|   |   `-- Hello.class
|   `-- src
|       `-- com
|           `-- antDemo
|               `-- Hello.java


小结:这是apache-ant带给我们开发者的好处,不用频繁使用javac命令编译、java命令运行了。只要写好了build.xml脚本,文件夹创建、程序的编译,运行都可以一键完成,可谓是一劳永逸啊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: