设为首页 收藏本站
查看: 593|回复: 0

[经验分享] Apache Ant 实例介绍

[复制链接]

尚未签到

发表于 2017-1-3 09:41:03 | 显示全部楼层 |阅读模式
  开开心心的过了个年,快快乐乐的过了个情人节!So,继续我技术的学习积累,努力工作吧,也向各位朋友拜个晚年!
  去年把DBUtils组件读了个遍,另外也写了一些实例和测试代码,在我的工程里,这个月整理出来。当然,最希望的是,能通过这个平台,与同行有更多交流的机会。如果我在学习积累过程中做下的笔记,能够对大家哪怕只有一点点的帮助,也倍感欣慰和荣幸!
  实际上呢,我想各位也很清楚,ASF在Java开源领域的地位,我们常常需要用到它的一些开源项目,我们学习他,研究他,甚至于参与开发他。每每我们download项目的时候,项目通常是Ant/Maven这两个跨平台的构件工具
进行编译发布,再加上前些日子一朋友问我关于Maven如何发布项目,这就促使了我决定学习这两个构件工具。说来惭愧,到目前为止,还没有动用过这两个东西来发布项目过,全部是MyEclipse->Deployments->Run Server。罢了,今儿开始,学习一下看看。当然了,这一切的学习成果和资料来源都来自各位前辈的劳动成果。
  Ant和Maven的优劣区别在这里就不再说了,在本篇,着重先来了解一下Ant:
  1下载安装:
  下载apache-ant-1.8.2-bin.zip

  解压ant的包到本地目录;  

      在环境变量中设置ANT_HOME,值为你的安装目录;    

      把%ANT_HOME%/bin加到你系统的path中;
  在CMD模式下,输入ant -version,回车,如果看到如下信息:
DSC0000.jpg
    

  则表示你已成功安装Ant,当然了,这一切的保证就是你必须安装了JDK。没有什么大问题,OK,跑个小例子看看:
  2 HelloWorld:
  在任一磁盘里新建一个antDemo的目录, 此文中的所有的示例均在此目录下,感兴趣的朋友不妨下下来看看。
  1)建立基本的Java工程:
  1-1)在antDemo目录下,建立名为antstudy的Java工程,在此工程下建立一src目录存放源代码,在src目录下建立HelloWorld.java,HelloWorld的具体内容如下:

public class HelloWorld{
public static void main(String[]args){
System.out.println("Hello,ant!");
}
}
  没有IDE工具怎么编译运行此文件夹来着?!呵呵~cmd模式下javac/java!
  OK,现在我们用Ant来编译此文件,编译后将HelloWorld.java对应的class文件存放在build/classes目录下:
  在antstudy的Java工程下,建立一build.xml文件,ant默认解析此文件。在编译之前,需清除classes目录,然后再建立一个新的build/classes目录,再将HelloWorld.java编译到此目录下,build.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="antStudyProj" default="compile" basedir=".">
<property name="classdir" value="build/classes"/>
<target name="clean">
<delete dir="${classdir}"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="${classdir}" />
<javac srcdir="src" destdir="${classdir}" />
</target>
</project>
  现在来运行一下看看,指定到antstudy目录,输入ant,看看控制台的输出信息:
DSC0001.jpg

  经过一系列的clean->compile,我们看到build/classes目录下,编译成功了HelloWorld.class.
  1-2)编译成功了是没错,得输出结果吧,我们得向我们的ant say hello一下啊,所以看看Ant是如何运行此文件的:
  修改build.xml,在上面两个target后新增一个名为run的target,并将project的default属性修改为run,具体的内容参见附件代码,现贴出target代码如下:

<target name="run" depends="compile">
<java classname="HelloWorld">
<classpath>
<pathelement path="${classdir}"/>
</classpath>
</java>
</target>

  再次在控制台输入ant,输出信息如下所示:
DSC0002.jpg

  OK,Hello,ant!的信息也打印出来了,总算大功一件告成!
  1-3)还有一个功能比较的重要:打jar包。这个重要的功能当然不能忘,这得需要用到Ant的jar标签,该标签对应Java的jar命令。新建一个名为jar的target,并依赖于run,修改project的default属性为jar,现贴出此target标签的代码:

<target name="jar" depends="run">
<jar destfile="helloworld.jar" basedir="${classdir}">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</jar>
</target>

  保存完毕后,同样输入ant,我们就可以看到antStudy目录下多了一个helloworld.jar:
DSC0003.jpg

  2)编译发布JavaEE项目:
  建立一JavaEE Web项目,目录结构如下:
DSC0004.jpg

  其中src目录存放源代码(暂将上一节的HelloWorld.java文件拷贝至此目录下),WebRoot存放各类的html/jsp文件等,lib下自然是放各类的jar包了,build/classes是存放src下的编译文件。在WebRoot目录下新建一index.jsp文件。建立打包andWebStudy项目的build.xml,具体内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="antwebproject"  default="war" basedir=".">
<property name="classes" value="build/classes"/>
<property name="build" value="build"/>
<property name="lib" value="WebRoot/WEB-INF/lib"/>
<target name="clean">
<delete dir="${build}"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="${classes}"/>
<javac srcdir="src" destdir="${classes}"/>
</target>
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
<fileset dir="WebRoot" includes="**/*.jsp"/>
<lib dir="${lib}"/>
<classes dir="${classes}" />
</war>
</target>
</project>
  完成之后,指定到antWebStudy目录,输入ant,我们看看控制台的信息如下:
DSC0005.jpg

  打包成功后,我们可以看到build目录下,多出了一个antwebproject.war文件,将此文件扔到tomcat的webapp目录下,在浏览器里输入http://localhost:8080/antwebproject/,便可看到运行结果了。当然了,我们也可以直接指定服务器的运行目录,这样可省得再拷贝了,怎么搞呢?!被你发现了,war标签的destfile属性修改一下即可了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-323106-1-1.html 上篇帖子: Apache Lucene 下篇帖子: Apache Architecture -- Aaron Bannert 翻译
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表