热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linuxant--强大的Java开发构建工具

用途说明ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛、功能强大的跨平台构建工具程序,尤其是进行Java开发时,许

    用途说明

    ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛、功能强大的跨平台构建工具程序,尤其是进行Java开发时,许多开源的Java项目都使用ant作为构建工具。ant命令一般情况下使用当前目录下的build.xml件作为构建用的配置文件,具体配置文件怎么编写本文不讨论,这个绝对可以展开成一个系列。本文主要演示一下在Linux下怎么安装ant,以及常用方式等。

    官方站点:http://ant.apache.org/

    当前版本:1.8.1

    安装步骤

    安装条件

    必须安装有jdk。下面是官方网站提供的两个注意事项:

    Note:If a JDK is not present, only the JRE runtime, then many tasks will not work.

    Note:Ant 1.8.* works with jdk1.4 and higher, Ant 1.7.* works with jdk1.3 and higher, Ant 1.6.* works with jdk 1.2 and higher, Ant 1.2 to Ant 1.5.* work with jdk 1.1 and higher.

    下载文件

    如果Linux机器不能上公网

    第一步,获取安装包。到http://ant.apache.org/bindownload.cgi下载apache-ant-1.8.1-bin.tar.gz

    第二步,上传到Linux机器。使用sftp或者ftp。

     

    [root@bbqztweb setup]#ls -l

    -rw-r--r--    1 root     root      8264796  5  1 06:03 apache-ant-1.8.1-bin.tar.gz

    如果Linux机器能上公网

    可直接使用wget获取安装包,使用人人网上的镜像文件比较快。如下所示:

    [root@bbqztweb setup]#wget http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.1-bin.tar.gz

    --21:08:03--  http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.1-bin.tar.gz

               => `apache-ant-1.8.1-bin.tar.gz'

    正在解析主机 labs.renren.com... 123.129.232.121

    Connecting to labs.renren.com|123.129.232.121|:80... 已连接。

    已发出 HTTP 请求,正在等待回应... 200 OK

    长度:8,264,796 (7.9M) [application/x-gzip]

     

    100%[========================================================================================>] 8,264,796    376.27K/s    ETA 00:00

     

    21:08:30 (314.87 KB/s) - `apache-ant-1.8.1-bin.tar.gz' saved [8264796/8264796]

     

    [root@bbqztweb setup]#ls -l

    -rw-r--r--    1 root     root      8264796  5  1 06:03 apache-ant-1.8.1-bin.tar.gz

     

    解压文件

    [root@bbqztweb setup]#tar zxf apache-ant-1.8.1-bin.tar.gz

    [root@bbqztweb setup]#mkdir -p /opt/apache

    [root@bbqztweb setup]#mv apache-ant-1.8.1 /opt/apache

    [root@bbqztweb setup]#ls /opt/apache

    apache-ant-1.8.0  apache-ant-1.8.1  apache-tomcat-6.0.26  axis2-1.5.1

    设置环境

    编辑文件/etc/profile.d/ant.sh

    [root@web jlib]# vim /etc/profile.d/ant.sh

     

    Bash代码  

    收藏代码

    1. #! /bin/sh  
    2.   
    3. # 2007.01.22 ant 2010.03.18 2010.06.28  
    4. if [ -d /opt/apache/apache-ant-1.8.1 ]; then  
    5.         export ANT_HOME=/opt/apache/apache-ant-1.8.1  
    6. elif [ -d /opt/apache/apache-ant-1.8.0 ]; then  
    7.         export ANT_HOME=/opt/apache/apache-ant-1.8.0  
    8. elif [ -d /usr/apache/apache-ant-1.7.1 ]; then  
    9.         export ANT_HOME=/usr/apache/apache-ant-1.7.1  
    10. elif [ -d /usr/apache/apache-ant-1.7.0 ]; then  
    11.         export ANT_HOME=/usr/apache/apache-ant-1.7.0  
    12. elif [ -d /usr/apache/apache-ant-1.6.5 ]; then  
    13.         export ANT_HOME=/usr/apache/apache-ant-1.6.5  
    14. fi  
    15. if [ $ANT_HOME ]; then  
    16.         [ $PATH ] && PATH=$ANT_HOME/bin:$PATH || PATH=$ANT_HOME/bin  
    17. fi  

     

    重新登录

    [root@web jlib]# echo $ANT_HOME

    /opt/apache/apache-ant-1.8.1

    [root@web jlib]# echo $PATH

    /usr/kerberos/sbin:/usr/kerberos/bin:/opt/apache/apache-ant-1.8.1/bin:/usr/java/jdk1.6.0_20/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    [root@web jlib]# ant

    Buildfile: build.xml does not exist!

    Build failed

    [root@web jlib]# ant -version

    Apache Ant version 1.8.1 compiled on April 30 2010

    [root@web jlib]#

    常用参数

    -f build.xml 指定不同于build.xml的构建配置文件。

    -version 取版本号。

     

    使用示例

    示例一

    [root@web web_server]#ls -l build.xml

    -rw-r--r-- 1 root root 5978 09-07 19:52 build.xml

    [root@web web_server]#ant

    Buildfile: /opt/web/web_server/build.xml

     

    init:

         [copy] Warning: Could not find file /opt/web/hyjc2/hyjc.jar to copy.

         [copy] Warning: Could not find file /opt/hyjc2/hyjc.jar to copy.

     

    compile:

        [javac] /opt/web/web_server/build.xml:42: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

     

    BUILD SUCCESSFUL

    Total time: 0 seconds

    [root@web web_server]#

    示例二 指定build文件

    [root@web web_admin]#ls -l tomcat-precompile.xml  

    -rw-r--r-- 1 root root 3091 11-03 11:33 tomcat-precompile.xml

    [root@web web_admin]#ant -f tomcat-precompile.xml     

    Buildfile: /opt/web/web_admin/tomcat-precompile.xml

     

    jspc:

         [echo] Compile JSP in: /opt/web/web_admin/WebRoot/WEB-INF/src

        [javac] /opt/web/web_admin/tomcat-precompile.xml:38: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

        [javac] Compiling 152 source files to /opt/web/web_admin/WebRoot/WEB-INF/src

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/download_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/ip_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upfile_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upload_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upstat_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upstop_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/fcktest/sample02_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/fcktest/sampleposteddata_jsp.java

    此处省略掉了很多输出

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/test/counter_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/wap/index_jsp.java

        [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/wap/login_jsp.java

        [javac]注意:某些输入文件使用了未经检查或不安全的操作。

        [javac]注意:要了解详细信息,请使用 -Xlint:unchecked重新编译。

     

    dist:

     

    BUILD SUCCESSFUL

    Total time: 6 seconds

    [root@web web_admin]#

     


推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
author-avatar
.
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有