Ant-编译构建(1)-HelloWorld
1、项目目录构成,lib包暂时为空,本次例子未引入第三方包。
2、编写相关的build.xml
<?xml version="1.0" encoding="utf-8"?>
<!--定义生成文件的project根元素,默认的target为空-->
<project name="antTest" basedir="." default="all">
<target name="all" depends="help,init,compile,build,run,clean">
<echo>Finish!</echo>
</target>
<!--定义4个简单属性-->
<property name="src" value="src"/>
<property name="classes" value="classes"/>
<property name="lib" value="lib"/>
<property name="dest" value="dest"/> <!--定义help target,用于输出该生成文件的帮助信息-->
<target name="help" description="打印帮助信息">
<echo>help - 打印帮助信息</echo>
<echo>complie - 编译Java源文件</echo>
<echo>run - 运行程序</echo>
<echo>build - 打包Jar包</echo>
<echo>clean - 清除所有编译生成的文件</echo>
</target> <!--init target,初始化-->
<target name="init">
<!--先删除classes属性所代表的文件夹-->
<delete dir="${classes}"/>
<!--创建classes属性所代表的文件夹-->
<mkdir dir="${classes}"/>
<!--先删除dest属性所代表的文件夹-->
<delete dir="${dest}"/>
<!--创建dest属性所代表的文件夹-->
<mkdir dir="${dest}"/>
</target> <!--定义一组文件路径集-->
<path id="classpath">
<pathelement path="${classes}"/>
</path> <!--定义complie target,用于编译Java源文件-->
<target name="compile" description="编译java源文件">
<!--编译java文件,编译后的class文件放到classes属性所代表的文件夹内-->
<javac destdir="${classes}" includeantruntime="yes">
<!--指定需要编译的Java文件所在的位置-->
<src path="${src}"/>
<!--指定编译Java文件所需要的第三方类库所在的位置-->
<classpath refid="classpath"/>
</javac>
</target> <!--定义build target,用于打包jar文件,运行该target之前会先运行compile target-->
<target name="build" description="打包jar文件" depends="compile">
<!--指定将classes属性所代表的文件夹下的所有*.class文件都打包到app.jar文件中-->
<jar destfile="${dest}/app.jar" basedir="${classes}" includes="**/*.class">
<!--为jar包的清单文件添加属性-->
<manifest>
<attribute name="Main-Class" value="lfy.HelloWorld"/>
</manifest>
</jar>
</target> <!--定义run target,用于运行Java源文件,运行该target之前会先运行compile target-->
<target name="run" description="运行程序" depends="compile">
<!--运行lfy.HelloWorld类,其中fork指定启动另一个JVM来执行Java命令-->
<java classname="lfy.HelloWorld" fork="yes" failonerror="true">
<classpath refid="classpath"/>
<!--运行Java程序时传入2个参数-->
<arg line="测试参数1 测试参数2"/>
</java>
<!--运行可执行jar文件-->
<java jar="${dest}/app.jar" fork="yes" failonerror="true">
<arg line="p1 p2"/>
</java>
</target> <!--定义clean target,用于删除所有编译生成的文件-->
<target name="clean" description="清除所有编译生成的文件">
<delete dir="${classes}"/>
<delete dir="${dest}"/>
</target> </project>
3、编写GoodMorning.java、HelloWorld.java
GoodMorning.java
package fyl; public class GoodMorning{
public static void say(){
System.out.println("GoodMorning lfy.");
}
}
HelloWorld.java
package lfy; import fyl.GoodMorning; public class HelloWorld{
public static void main(String[] args){
for(int i=0;i<args.length;i++){
System.out.println("parameters["+i+"]---->"+args[i]);
}
System.out.println("Hello World!");
GoodMorning.say();
}
}
4、运行结果
5、build.xml相关标签介绍
典型的项目层次结构:
Ant-编译构建(1)-HelloWorld的更多相关文章
- Apache Ant 项目构建
项目构建:通过构建工具对多个项目进行统一批量的编译和运行,比如,对多个Jmeter脚本批量运行 1.Ant是什么? Ant是 构建工具,Apache Ant是一个将软件编译.测试.部署等步骤联系在一起 ...
- Ubuntu环境下利用ant编译nutch2.2.1 & 配置nutch2.2.1
/×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...
- 在flash builder 4.6中使用ant编译项目的详细过程
首先要准备APACHE ANT,目前是1.9.2版 可以去这里下载:http://ant.apache.org/bindownload.cgi?Preferred=http://labs.renren ...
- 使用ant自动构建apk
最近因渠道过多,需要单独接入渠道支付sdk的渠道也很多,而首发在即.人手不足,所以着手了部分相关的工作,看了下目前的操作流程..无奈人比较懒,所以决定进行一波简化的技术,先考虑到了两种方案: 1)脚本 ...
- ant编译mysql驱动
修改驱动源码后需要重新编译构建,由于mysql编译需要两个jdk版本且还需要hibernate4和junit,这里记录下. 安装ant. 配置两个jdk,5和8.并修改build.xml配置,如下: ...
- Ant编译android程序
http://blog.csdn.net/xyz_lmn/article/details/7268582 这一篇主要做了创建android项目.update已存在项目.ant编译项目. 一,准备ant ...
- 【图文】 使用ant编译和发布java项目
开发JavaEE项目经常会碰到修改代码后,项目没有重新编译的问题.老大给指明了一个解决办法:用ant编译项目. ant是apache基金会下的一个项目,是基于Java语言的构建工具. ...
- Zookeeper源代码编译为Eclipseproject(win7下Ant编译)
为了深入学习ZooKeeper源代码,首先就想到将其导入到Eclispe中,所以要先将其编译为Eclispeproject. 1.什么是Ant??? Apache Ant™ Apache Ant is ...
- 使用ant编译项目技能
ant编译时指定jdk的版本号 系统的jdk版本号是1.6,而项目使用的jdk版本号是1.5.所以在编译时须要指定jdk的版本号为1.5,能够使用以下的方法为javac 任务指定fork和execut ...
随机推荐
- HTML5 入门基础
HTML5概述HTML5於2004年被WHATWG(网页超文本技术工作小组)提出,於2007年被W3C接纳.在2008年1月22日,第一份正式草案已公布.WHATWG表示该规范是目前正在进行的工作,仍 ...
- FCC 成都社区·前端周刊 第 8 期
01. 2018 前端开发者手册 这是一份 2018 前端开发手册,内容包括三个部分:前端工程实践.前端开发学习和前端开发工具. 详情:https://frontendmasters.com/book ...
- Java验证码程序
1.设计思想利用random的随机生成数字,利用for循环控制随机数字的个数来控制验证码的输出.利用JFrame实现布局的管理,对登录框内容的位置进行管理. 2.流程图 3.源代码 denglu类 i ...
- Django orm(1)
目录 一.orm查询 1.1配置测试脚本 1.1.1Django终端打印SQL语句的配置 1.2单表操作 1.2.1创建数据 1.2.2修改数据 1.2.3删除数据 1.2.4查询数据 1.2.5计数 ...
- APP功能测试注意点
App功能测试的7大注意点 : APP测试 在日常工作的摸索中,我们将如何做好app测试的注意点简单归结为如下内容. 弱网测试,兼容性测试,UI测试.中断测试, 01 运行 1)App安装完成后 ...
- mybatis时间范围查询
<if test="excStartTime!=null and excStartTime!=''"> <![CDATA[ and DATE_FORMAT(dl. ...
- tapmode="hover"属性
.hover{ opacity: .; } <span tapmode="hover" onclick="fnOpen()">open</sp ...
- 【CF1252K】Addition Robot(线段树,矩阵乘法)
题意: 思路:因为线段树上每一段的矩阵之积只有两种,预处理一下,翻转的时候下传tag然后把另一种可能性换上来就好 #include<bits/stdc++.h> using namespa ...
- shell时间转换脚本
字符串转换为时间戳: time2utc #!/bin/sh Time=$ date -d "${Time}" '+%s' 时间戳转日期字符串 utc2time #!/bin/sh ...
- activeMQ安全机制