ant读书之使用ant进行java开发--第二章
2019独角兽企业重金招聘Python工程师标准>>>
几条总结:
一。在ant的构建文件中,根元素始终是:<project>
二。ant的概念模型:项目包含目标,目标包含任务,也就是把所有的目标放在目标中,即:所有的target,在project根标签下,且不要有其他东西在project根标签下。所有的执行过程,在targert标签中
三。在ant中,任何一个任务失败,会导致整个构建过程的终止
四。javac命令中依赖关系检查仅仅局限于在比对源文件与目标文件的日期上
我的代码:
HelloWorld.java//主类
package com.laolang.hello;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;import com.laolang.stu.Student;public class HelloWorld {public static void main(String[] args) {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));Student stu = null;int id = 0;String name = null;int age = 0;String sex = null;try {System.out.print("输入学号:");id = Integer.parseInt(br.readLine());System.out.print("输入姓名:");name = br.readLine();System.out.print("输入年龄:");age = Integer.parseInt(br.readLine());System.out.print("输入性别:");sex = br.readLine();} catch (NumberFormatException | IOException e) {e.printStackTrace();}stu = new Student(id, name, age, sex);System.out.println("student:");System.out.println(stu);System.out.println("Hello World!");System.out.println("小代码!");}}
Student.java//学生类
package com.laolang.stu;public class Student {public Student() {super();}public Student(int stuId, String stuName, int stuAge, String stuSex) {super();this.stuId = stuId;this.stuName = stuName;this.stuAge = stuAge;this.stuSex = stuSex;}@Overridepublic String toString() {return "Student [stuId=" + stuId + ", stuName=" + stuName+ ", stuAge=" + stuAge + ", stuSex=" + stuSex+ "]";}public int getStuId() {return stuId;}public void setStuId(int stuId) {this.stuId = stuId;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public int getStuAge() {return stuAge;}public void setStuAge(int stuAge) {this.stuAge = stuAge;}public String getStuSex() {return stuSex;}public void setStuSex(String stuSex) {this.stuSex = stuSex;}private int stuId;private String stuName;private int stuAge;private String stuSex;}
build.xml
<?xml version="1.0" encoding="utf-8"?>
<project name="hello" default="archive"><description>这是使用ant进行JAVA开发的第一个完整的例子</description><!-- 初始化 --><target name="init" description="初始化"><mkdir dir="build/classes" /><mkdir dir="dist" /></target><!-- 编译 --><target name="compile" depends="init" description="编译"><javac srcdir="src" destdir="build/classes" /></target><!-- 打包 --><target name="archive" depends="compile" description="打包"><jar destfile="dist/project.jar" basedir="build/classes" /></target><!-- 清除 --><target name="clean" depends="init" description="清除中间文件"><delete dir="build" /><delete dir="dist" /></target><!-- 运行 --><target name="execute" depends="compile" description="运行"><echo level="warning" message="running" /><javaclassname="com.laolang.hello.HelloWorld"classpath="build/classes"><arg file="." /></java></target>
</project>
运行效果:
laolang@laolang:~/code/ant/book/two/first_build_35$ l
总用量 8.0K
4.0K -rw-rw-r-- 1 laolang laolang 1011 11月 21 21:54 build.xml
4.0K drwxrwxr-x 3 laolang laolang 4.0K 11月 21 21:12 src/
laolang@laolang:~/code/ant/book/two/first_build_35$ tree
.
├── build.xml
└── src└── com└── laolang├── hello│ └── HelloWorld.java└── stu└── Student.java5 directories, 3 files
laolang@laolang:~/code/ant/book/two/first_build_35$ ant -projecthelp
Buildfile: /home/laolang/code/ant/book/two/first_build_35/build.xml
这是使用ant进行JAVA开发的第一个完整的例子
Main targets:archive 打包clean 清除中间文件compile 编译execute 运行init 初始化
Default target: archive
laolang@laolang:~/code/ant/book/two/first_build_35$ ant compile
Buildfile: /home/laolang/code/ant/book/two/first_build_35/build.xmlinit:[mkdir] Created dir: /home/laolang/code/ant/book/two/first_build_35/build/classes[mkdir] Created dir: /home/laolang/code/ant/book/two/first_build_35/distcompile:[javac] /home/laolang/code/ant/book/two/first_build_35/build.xml:14: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds[javac] Compiling 2 source files to /home/laolang/code/ant/book/two/first_build_35/build/classesBUILD SUCCESSFUL
Total time: 1 second
laolang@laolang:~/code/ant/book/two/first_build_35$ ant execute
Buildfile: /home/laolang/code/ant/book/two/first_build_35/build.xmlinit:compile:[javac] /home/laolang/code/ant/book/two/first_build_35/build.xml:14: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable buildsexecute:[echo] running
1001
tianya
34
nan[java] 输入学号:输入姓名:输入年龄:输入性别:student:[java] Student [stuId=1001, stuName=tianya, stuAge=34, stuSex=nan][java] Hello World![java] 小代码!BUILD SUCCESSFUL
Total time: 7 seconds
laolang@laolang:~/code/ant/book/two/first_build_35$ ant archive
Buildfile: /home/laolang/code/ant/book/two/first_build_35/build.xmlinit:compile:[javac] /home/laolang/code/ant/book/two/first_build_35/build.xml:14: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable buildsarchive:[jar] Building jar: /home/laolang/code/ant/book/two/first_build_35/dist/project.jarBUILD SUCCESSFUL
Total time: 0 seconds
laolang@laolang:~/code/ant/book/two/first_build_35$ tree
.
├── build
│ └── classes
│ └── com
│ └── laolang
│ ├── hello
│ │ └── HelloWorld.class
│ └── stu
│ └── Student.class
├── build.xml
├── dist
│ └── project.jar
└── src└── com└── laolang├── hello│ └── HelloWorld.java└── stu└── Student.java12 directories, 6 files
laolang@laolang:~/code/ant/book/two/first_build_35$ ant clean
Buildfile: /home/laolang/code/ant/book/two/first_build_35/build.xmlinit:clean:[delete] Deleting directory /home/laolang/code/ant/book/two/first_build_35/build[delete] Deleting directory /home/laolang/code/ant/book/two/first_build_35/distBUILD SUCCESSFUL
Total time: 0 seconds
laolang@laolang:~/code/ant/book/two/first_build_35$ tree
.
├── build.xml
└── src└── com└── laolang├── hello│ └── HelloWorld.java└── stu└── Student.java5 directories, 3 files
laolang@laolang:~/code/ant/book/two/first_build_35$ l
总用量 8.0K
4.0K -rw-rw-r-- 1 laolang laolang 1011 11月 21 21:54 build.xml
4.0K drwxrwxr-x 3 laolang laolang 4.0K 11月 21 21:12 src/
laolang@laolang:~/code/ant/book/two/first_build_35$
转载于:https://my.oschina.net/iamhere/blog/347344
ant读书之使用ant进行java开发--第二章相关推荐
- 【读书笔记】《Effective Java》第二章 第2条:遇到多个构造器参数时要考虑使用Builder
一.前言 <Effective Java>读书笔记系列 第二章 第1条:创建和销毁对象 第二章 第2条:遇到多个构造器参数时要考虑使用Builder 二.介绍 我们开发中偶尔会遇到一些需要 ...
- 【微信开发第二章】SpringBoot实现微信公众号普通消息和模板消息回复
前言 在进行微信公众号业务开发的时候,微信公众号的消息回复是非常重要的一环,而微信公众号消息回复分为:普通消息自动回复和模板消息回复.该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,并且每 ...
- java 3D 第二章 java 3D基本概念
java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...
- Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔
Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...
- wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示
目录 前言 一.代码目录层级 二.数据库 三.数据表设计 四.展示数据 前言 上一章节已经介绍了如何将程序主窗口设计好生成python代码,运行成功的展示了窗体. 上一章内容地址: wxFormBui ...
- Java笔记——第二章(Ⅱ)牛刀小试之身高预测
第二章(Ⅱ)牛刀小试之身高预测 一.任务实施 任务:编写一个程序通过父母的身高来预测子女的身高. 输入:父亲身高.母亲身高.孩子性别 公式: 儿子的成年身高=(父亲身高+母亲身高)x1.08 ÷2 女 ...
- JAVA基础第二章 面向对象进阶
2.1封装与getter.setter方法 1.读写是两个操作,读即取值.访问值,写即赋值. 2.面向对象的三大特征:封装.继承.多态 (1)封装--一个程序肯定会定义很多类,那么为了保证各个类之间数 ...
- 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常
运行时数据区域 Java虚拟机运行时数据区域 程序计数器 程序计数器可以看做是当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条所需要执行的字节码指令,分支. ...
- java方法区内存泄露_深入理解java虚拟机-第二章:java内存区域与内存泄露异常...
2.1概述: java将内存的管理(主要是回收工作),交由jvm管理,确实很省事,但是一点jvm因内存出现问题,排查起来将会很困难,为了能够成为独当一面的大牛呢,自然要了解vm是怎么去使用内存的. 2 ...
最新文章
- 5月“.公司”域名注册总量TOP15:西部数码第四
- Android处理ListView中的Item中的Button按钮不能点击的问题
- 【转】SOAR平台初探(一)
- js面向对象的程序设计 --- 中篇(创建对象) 之 工厂模式和 构造函数模式
- 词嵌入word2vec、字词嵌入fastText、全局词嵌入Glove直接的联系与关系
- [ExtJs6]随记--去除extjs trial水印
- 软件测试的目的、原则及流程
- Struck的安装注意事项
- webservice 传输加密
- 使用Nordic芯片的手环OTA(android)
- 关于erf()与erfc()
- 如何将flac转换成mp3
- 2017年乌镇互联网大会部分要点实地记录
- (16)业务数据导入HDFS
- 报错:The server time zone value ‘�й���ʱ��‘ is unrecognied
- 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
- 【数据结构】——顺序表介绍(独家介绍,小白必看!!)
- 新年促销扎堆,8个邮件营销方法打动你的客户
- MySQL课程设计——简易学生信息管理系统
- java web网站集成新浪微博登录
热门文章
- MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列
- Go-实现猜数字游戏代码
- servlet 校验密码
- Orchard Core 文档翻译 (六)HTML
- 《Elasticsearch 权威指南》阅读笔记
- Oracle Database 9i 10g 11g编程艺术 深入数据库体系结构 第2版pdf
- Hbase 常见错误总结——摘自忘了
- 软件工程个人作业02
- MFC List Control 控件添加单元格编辑,实现可编辑重写
- [No000066]python各种类型转换-int,str,char,float,ord,hex,oct等