Ant调试



Ant调试

ant 是一种非常方便的打包,部署的工具,通过ant,可以一键构建整个项目,虽然MVN也支持这种功能,但是MVN混杂了package管理的功能,并且不是很自由,学习成本比较高。

通常,我们调试ant构成的程序,是通过远程调试的功能,来实现的,缺点就是不能在ide中的console中显示标准输出输入流,比较麻烦。

本文档将介绍如何通过ant在idea中构建一个Hello World程序,并且能进行调试这个Hello World。

主要的思想:通过ant的jar包中的main函数来启动一个本地application, 这样子就可以在idea的Console中看到输出流了.

项目结构

通过Idea创建一个普通的Java应用程序.

ant/

需要去apache ant 网站下载最新的ant程序, 然后解压开来, 复制lib下所有的jar包到ant/目录下, 然后把ant/目录设置为项目的依赖jars.

build.xml

build.xml 是用来描述项目是如何编译以及运行的.

注意: java 指令中不能包含fork="yes".

配置启动器

注意, 我们需要关闭Make这个选项, 因为我们已经通过ant来编译项目了.

到此我们基本完成了配置,

接着我们来Debug 项目, 注意, 在Main函数下断点.

这时候, 我们可能遇到无法查询到javac的错误报告, 这个是因为Idea 在SDK配置的时候, 没有把SDK/lib/tools.jar 添加到环境中, 所以我们需要手动添加这个JAR包.

这样子, 运行环境中就包含了javac的包了(tools.jar).

我们再次运行SHIFT+F9.

成功运行到断点, 之后就和普通的Java应用一样了.

项目下载地址:http://files.cnblogs.com/files/tickobject/Test.zip

总结

通过ant,  我们可以自定义目录结构, 编译过程, 部署过程, 而不必依赖IDE的标准结构, 代价就是需要熟悉ant的一些常用指令, 以及标准目录结构(这是为了build出的项目能在目标环境中运行), 如webapp的war结构等.

idea通过一些简单的配置, 就可以完成使用ant来构建项目, 以及在idea中调试程序的功能.

而主要的思想就是ant是纯java的应用, 当然可以通过idea来引导ant的Main函数, 然后进一步的debug到我们的目标程序.

在Idea中调试ant应用的更多相关文章

  1. 在Eclipse中集成Ant配置

    提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...

  2. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  3. 在IIS Express中调试时无法读取配置文件 错误

    在IIS Express中调试代码时,如果出现"无法读取配置文件"的问题(如图),这种情况是IIS Express的"applicationhost.config&quo ...

  4. 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)

    在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...

  5. 在 Chrome 中调试 Android 浏览器

    最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友. Chrome Devel ...

  6. 在Android开发中使用Ant 一:环境的搭建及入门

    配置Ant环境 下载Ant:http://ant.apache.org/bindownload.cgi 在windows上应该选择zip压缩包,将zip压缩包解压到一个目录. 打开系统环境变量,在系统 ...

  7. java系列: 在eclipse中调试时,输入的jsp或者servlet页面的地址要区分大小写

    比如在当前web工程中有一个jsp页面的名字是: Welcome.jsp 在eclipse中调试时,如果在浏览器中输入: http://localhost:8080/MavenWeb/welcome. ...

  8. vs2010 开发过程中调试时 有错误不中断

    出现这个的原因是调试的设置有问题,修改下设置就好了. 修改方法:点击上边工具栏中   调试--异常 出现以下页面,把引发那列复选框全部勾上,点击确定就好了.

  9. Ant学习笔记(2) 在Eclipse中使用Ant

    Eclipse默认提供了对Ant的支持,在Eclipse中不需要安装任何插件就能直接编辑和运行Ant.Eclipse中包含了一个Ant脚本编辑器,Ant脚本编辑器提供了对Ant脚本的语法搞来高亮.自动 ...

随机推荐

  1. VisualC++2012 Compiler Warning C4566

    现象: 今天敲代码突然遇到这样一个警告: warning C4566: ユニバーサル文字名 '\u0642' によって表示されている文字は.現在のコード ページ (932) で表示できません 意思是说 ...

  2. Jplayer小样

    最近应公司要求需要一个MP3播放的插件,网上找了很多插件,看来看去还是jPlayer用着最舒服也最容易扩展.所以就找了个资料研究了下,简单做了个小DEMO.支持实时控制列表,常见的播放器功能. jPl ...

  3. react.js 从零开始(三)JSX 语法及特点介绍

    什么是jsx? jsx = JavaScript + xml jsx 是一种 Ecmascript 的一种新标准. jsx 是一种 带有结构性的语法. jsx 的特点: 1.类xml语法易于理解. 2 ...

  4. 让UIAlertController兼容的同时iphone和ipad

    让UIAlertController兼容的同时iphone和ipad by 吴雪莹 var alert = UIAlertController(title: nil, message: message ...

  5. 数组排序、递归——(Java学习笔记二)

    升序:      选择排序:         选定一个元素,一次和后面的元素相比较,如果选定的元素大雨后面的比较元素,就交换位置         先出现最小值,最后出现最大值. public stat ...

  6. HttpClient模拟客户端请求实例

    HttpClient Get请求: /// <summary>        /// Get请求模拟        /// </summary>        /// < ...

  7. Mysql编写定时任务事件

    原文:Mysql编写定时任务事件 场景: 例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会.像这种需要数据库定时对某个字段进行更新操 ...

  8. 【Swift初见】Swift词典

    顾名思义.当我们仰望的时候,我们将基于索引查找我们需要找到的资源.在swift这同样适用,每个对象包括字典key和value.我们key为了找到当前这个key相应的value.与数组不同的是,字典项字 ...

  9. 有意思的cmd命令

    1. Msconfig命令显示系统配置窗体,能够了解一些服务.启动相关的信息. 2.Gpedit.msc 命令显示本地组策略编辑器,能够设置用户登录时执行的程序. 3. Regedit 这个应该非常多 ...

  10. Swift # 柯里化函数

    前言 此次文章,讲述的是Swift的一个新特性(柯里化函数),可能很多iOS开发人员是第一次听这个词汇,包括我自己也是,自己也用了几天时间才总结出来,希望能帮助到各位咯,个人感觉偏向有开发经验的码友, ...