Ant—使用Ant构建一个简单的Java工程(两)
博客《Ant—使用Ant构建一个简单的Java项目(一)》演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant:
上面样例须要运行多条ant命令才干运行Test类中的main函数,能不能简化须要运行命令呢?答案是肯定的,能够将build.xml文件里的脚本改成以下的脚本:
<?
xml version="1.0" encoding="UTF-8"?> <project name="test" default="run-Test" basedir="."> <property name="src" value="src"/> <property name="lib" value="build/lib"/> <property name="dest" value="build/classes"/> <property name="np_jar" value="build/lib/test.jar"/> <target name="create-path"> <mkdir dir="${dest}"/> <mkdir dir="${lib}"/> </target> <target name="create-class" depends="create-path"> <javac srcdir="${src}" destdir="${dest}"/> </target> <target name="create-jar" depends="create-class"> <jar destfile="${np_jar}" basedir="${dest}"> <manifest> <attribute name="Main-Class" value="Test"/> </manifest> </jar> </target> <target name="run-Test" depends="create-jar"> <java classname="Test" classpath="${np_jar}"/> </target> <target name="clean"> <delete file="${np_jar}"/> <delete dir="${dest}"/> <delete dir="${lib}"/> </target> </project>
这时仅仅需运行ant命令就能够操作完毕须要依次运行“ant create-path”、“ant create-class”、“ant create-jar” 和“ant run-Test”命令才干完毕的操作,那么它是如何做到的呢?
a、因为project标签default属性定义的值为run-Test,所以当直接运行ant命令时ant会首先运行name为run-Test的target;
b、因为name为run-Test的target中的depends属性指向name为create-jar的target,所以会先运行name为create-jar的target;
c、因为name为create-jar的target中的depends属性指向name为create-class的target。所以会先运行name为create-class的target;
d、因为name为create-class的target中的depends属性指向name为create-path的target,所以会先运行name为create-path的target。
e、因为name为create-path的target没有depends属性。所以ant命令终于先运行该target。
由此可见。此时单独运行ant命令事实上就是依次运行了“ant create-path”、“ant create-class”、“ant create-jar” 和“ant run-Test”命令。
DOS窗体单独运行ant命令的结果例如以下图:
版权声明:本文博客原创文章。博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/gcczhongduan/p/4714772.html
Ant—使用Ant构建一个简单的Java工程(两)相关推荐
- idea建立一个java工程_IntelliJ IDEA(三、各种工程的创建 -- 之一 -- 创建一个简单的Java工程)...
一.创建一个简单的Java工程:HelloWorld 1. Eclipse的第一步是选择工作空间,然后创建项目: IDEA不同(没有工作空间的概念),第一步就直接创建具体的项目,项目创建过程中会选择在 ...
- 基于 MQTT 通讯一个简单的 Java工程
这篇文章也是记录一下我当时为了能够测试一个MQTT方案学习设计的一个手机APP, 要特别感谢B站UP主 阿正啷个哩个啷,整个程序从0开始写,后期向同事请教,添加了部分功能模块 本文针对Java 0基础 ...
- java jsf_使用Java和JSF构建一个简单的CRUD应用
java jsf 使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. JavaServer Fac ...
- 使用Java和JSF构建一个简单的CRUD应用
使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. JavaServer Faces(JSF)是用 ...
- 一个简单的Java EEDocker示例
本文讲的是一个简单的Java EE&Docker示例,[编者的话]学习Docker的最好办法就是迅速在工作中应用它,本文作者使用Docker部署了一个Java EE应用,非常简单和方便.需要注 ...
- 一个简单的Java程序:My first Java!
** 这是一个简单的Java程序 当我们安装完java,构建好环境变量,安装完Eclipse IDE之后,就可以编写我们的第一个java程序了. 进入Eclipse后,我们先见一个java项目,命名为 ...
- java 序列化 例子_一个简单的Java序列化的例子
简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...
- java 语言 写字板_一个简单的java语言写字板.docx
一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...
- python构建知识图谱_NLP第20课:Neo4j 从入门到构建一个简单知识图谱
Neo4j 对于大多数人来说,可能是比较陌生的.其实,Neo4j 是一个图形数据库,就像传统的关系数据库中的 Oracel 和 MySQL一样,用来持久化数据.Neo4j 是最近几年发展起来的新技术, ...
最新文章
- 1组合逻辑电路--多路选择器与多路分解器
- 2019 Multi-University Training Contest 4 - K-th Closest Distance
- QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置
- 51 执行远程命令(Paramiko)
- 我的世界java版导入地图_网易我的世界备份与导入地图
- Codeup墓地-问题 D: 继续畅通工程
- 厉害了!Intel第九代酷睿参数曝光
- 对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
- python开发系统架构设计师_系统架构设计师在线题库
- SpringBoot集成MyBatis-Plus代码生成器(Dao)
- java线程的小问题与回答
- Buses and People CodeForces 160E 三维偏序+线段树
- IaaS(基础设施即服务),PaaS(平台即服务),SaaS(软件即服务)的区别
- 软件开发应遵循的原则
- iOS自动化测试环境搭建总结
- 自定义圆环形进度条实现
- tensorflow 歌曲题材分类
- Python中计算圆的周长,面积
- 乌班图16设置固定(静态)ip
- 电解电容和钽电容的区别