两周发一篇技术贴,总结一下这两周学习的成果。这是第二贴。
最近开始学习ant部署的教程,了解了一点点皮毛,做了一些总结。
先发第一部分,附件是相关的联系的源码文件。
第二部分再总结一下ant如何和tomcat结合部署一个web工程,如何和junit结合进行单元测试。
我是ant初学者,欢迎高手指点...
一
.
环境变量配置
下载地址:
http://ant.apache.org/bindownload.cgi
下载之后,配置
ANT_HOME
(E:\
火狐下载
\apache-ant-1.8.2-bin\apache-ant-1.8.2)
添加
PATH
%ANT_HOME%\bin;
为了方便测试,还添加了
junit jar
包到
ant
的下面的
lib
下面。
修改环境变量
class_path
:添加
%ANT_HOME%\lib\junit-4.9b2.jar;
测试安装
ant
是否成功,在
cmd
下面输入命令:
ant
出现:
build failed
等字样,就说明成功了。因为缺少build.xml
就可以了。
二
ANT
基础使用
2.1HelloWorld
2.1
建立一个
src
文件夹,放一个简单的
HelloWorld.java
package test;
public class HelloWorld
{
public static void main(String[] a){
System.out.println("
你好的啊
");
}
}
|
2.2
在
src
目录同级写一个
build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
编译的名字
-->
<project name="HelloWorld" default="run" basedir=".">
<!--
下面定义了三个变量,后面将引用。
-->
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello1.jar"/>
<!-- init
步骤
:
创建一个
dest
目录
-->
<target name="init">
<mkdir dir="${dest}"/>
</target>
<!--
编译
-->
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<!--
生成
jar -->
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<!--
运行
-->
<target name="run" depends="build">
<java classname="test.HelloWorld" classpath="${hello_jar}"/>
</target>
<!--
清空
-->
<target name="clean">
<delete dir="${dest}"/>
<delete file="${hello_jar}"/>
</target>
<!--
重新编译执行
-->
<target name="rerun" depends="clean,run">
<ant target="clean"/>
<ant target="run"/>
</target>
</project>
|
注意:下面的
name
里面的值都可以自定义!!
target
就是表示
ant
可以执行的操作名称!!
在第一行配置文件里面,
default="run"
表示默认执行就是
target=run
的操作。即,如果只输入
ant
,实际效果等于
ant run
三
引用
properties
属性
可以在
properties
文件中定义属性内容,然后用一个公用的
xml
,去调用这些属性文件的值就可以了,只需要改写属性内容的值。
定义一个属性文件:
all.properties
,内容如下,每个
src
文件夹里面都含有
build.xml
以及
java
所在的源码文件夹
src1=D:\\ant test\\2build_some_srcs\\src1
src2=D:\\ant test\\2build_some_srcs\\src2
src3=D:\\ant test\\2build_some_srcs\\src3
|
然后在同级定义一个
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="main" default="build" basedir=".">
<property file="all.properties"/>
<property name="bin" value="${basedir}\bin"/>
<target name="init">
<mkdir dir="${bin}"/>
</target>
<!--
在
build
的时候,把各个子文件夹里面的
jar
都拷贝到
bin
里面去!
-->
<target name="build" depends="init,subuild">
<copy todir="${bin}">
<fileset dir="${src1}">
<!--
这里可以添加多种文件的类型。如果几个不同的
src
目录里面有同名的文件,后面的就覆盖了
-->
<include name="*.jar"/>
<include name="*.xml"/>
</fileset>
<fileset dir="${src2}">
<include name="*.jar"/>
</fileset>
<fileset dir="${src3}">
<include name="*.jar"/>
</fileset>
</copy>
</target>
<target name="subuild" >
<ant dir="${src1}" target="build"/>
<ant dir="${src2}" target="build"/>
<ant dir="${src3}" target="build"/>
</target>
<!--
下面通过递归调用了各个
src
里面的
ant run
命令!
-->
<target name="run" >
<ant dir="${src1}" target="run"/>
<ant dir="${src2}" target="run"/>
<ant dir="${src3}" target="run"/>
</target>
<target name="clean">
<ant dir="${src1}" target="clean"/>
<ant dir="${src2}" target="clean"/>
<ant dir="${src3}" target="clean"/>
</target>
<target name="rebuild" depends="build,clean">
<ant target="clean"/>
<ant target="build"/>
</target>
</project>
|
四
include
配置文件
可以把一些公用的配置放到一个
xml
中,其他分的配置文件在引用这个文件
定义一个
include.xml:
<!--
定义了一些属性,以及还有一个动作叫做
test
,实际是调用的
run -->
<?xml version="1.0" encoding="UTF-8"?>
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<target name="test">
<ant target="run"/>
</target>
然后在要引用上面配置文件的主文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project[
<!ENTITY share-variable SYSTEM "file:../include.xml">
]>
<project name="HelloWorld" default="run" basedir=".">
&share-variable;
<!--
这里的东西不要忘记了!
-->
<property name="hello_jar" value="hello1.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="test.HelloWorld1" classpath="${hello_jar}"/>
</target>
</project>
|
然后可以使用
ant test
进行执行了(调用的
run
方法)
五
生成
jar
包
<?xml version="1.0" encoding="GBK"?>
<project name="HelloWorld" default="run" basedir=".">
<property file="all.properties"/> <!--
引用一个属性文件
-->
<target name="clean">
<delete dir="${build.jar}"/>
</target>
<!--
将源文件编译之后的
class
文件放到
classes.dir
下面
-->
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src}" destdir="${classes.dir}"/>
</target>
<!--
将
class
打
jar
包,并制定执行的主文件是
main-class,
然后把
jar
包
放到
jar.dir
里面
,
命名为
myfirst.jar-->
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/myfirst.jar"
basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<!--
执行生成的
jar
包,注意下面的
fork
属性为
true
表示引用非
java_Home
指定
位置的
jar
包
-->
<target name="run" depends="jar">
<java jar="${jar.dir}/myfirst.jar" fork="true"/>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
</project>
|
六
调用其他
jar
包
经常需要在代码中引用其他的
jar
包,例如常用的
log4j
等。
<?xml version="1.0" encoding="GBK"?>
<project name="HelloWorld" default="run" basedir=".">
<property file="all.properties"/>
<target name="clean">
<delete dir="${build.jar}"/>
</target>
<!--
表示引入的路径里面的全部的
jar
包
-->
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<!--
将源文件编译之后的
class
文件放到
classes.dir
下面
同时引用了
classpath
里面包含的
jar
文件
-->
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src}" destdir="${classes.dir}"
classpathref="classpath"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/myfirst.jar"
basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<!--
执行生成的
jar
包,注意下面的
fork
属性为
true
表示引用非
java_Home
指定
位置的
jar
包
-->
<target name="run" depends="jar">
<java classname="${main-class}" fork="true">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/myfirst.jar"/>
</classpath>
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
<!--
<path id="classpath">
<fileset dir="lib" includes="**/*.jar"/>
</path>
<target name="run" depends="jar">
<java fork="true" classname="">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/apache-ant.jar" />
</classpath>
</java>
</target>
-->
</project>
|
七
连接数据库
可以通过
ant
直接连接数据库,进行数据库的操作。
<!--
直接使用命令
ant testsql
就可以对数据库进行操作了!
-->
<!--
将访问数据库的驱动放到
ant
目录下面,为什么不像上面的
F
里面说的配置
classpath
呢?
我认为是因为那个
F
是在代码里面调用了这个
jar
包,而这里是直接在
ant
里面调用的
sql
驱动,直接就连数据库了!!
. -->
<target name="testsql">
<sql driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/lsqgbk2"
userid="root"
password="admin">
insert into china_area values(11,22,33)
</sql>
</target>
|
八
更多的
ant task
或者叫做
core task
<!--
拷贝目录下面的指定文件类型,排除另外的一些类型
-->
<target name="copy2" depends="clean,init">
<copydir src="${src2}" dest="${dest}" includes="*.doc" excludes="*.pdf"/>
</target>
分享到:
相关推荐
《Maven学习心得》 Maven,作为Apache推出的一款强大的构建和工程管理工具,与ANT相比,具有显著的优势。本文将深入探讨Maven的核心特点、优势以及存在的问题,以供学习参考。 首先,Maven的一大亮点在于其对第三...
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions ...1.20 Jboss下的第一个EJB程序 1.21 JNDI 1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
- **编写Servlet代码:** 实训中将动手编写第一个Servlet,了解Servlet的基本编写方式。 - **使用Ant部署Web项目到Tomcat:** Ant是一个Java编写的构建工具,实训中将学习如何使用Ant自动部署Web项目到Tomcat...
《Eclipse插件开发》第三版是一本经典的教程书籍,为开发者提供了深入学习Eclipse插件开发的技术指南。 #### 二、目标读者群体 本书主要面向以下几类人群: - **专业开发者**:已经从事Eclipse插件开发的工程师或...
1. **官方文档与教程**:Vue.js的官方文档详细且易懂,是学习的基础。此外,还有许多在线教程和课程,如Vue Mastery、Egghead.io等,适合不同水平的开发者。 2. **库和插件**:Vue生态系统中有很多优秀的第三方库和...
8. **组件库**:为了提高开发效率,开发者可能会引入第三方组件库,如Ant Design Vue for WX。 9. **国际化**:对于多语言支持,可能会有i18n配置和翻译文件。 10. **测试**:可能包含单元测试或集成测试用例,...
- **构建Hibernate基础代码**:了解如何通过Hibernate工具自动生成与数据库表对应的Java实体类,这是实现ORM(对象关系映射)的第一步。通过这一过程,开发者可以快速建立数据库与Java对象之间的联系,简化数据访问...
安装依赖 npm i npm i roadhog -g 启动 json-server npm run server ...项目是学习了一韬的React实验室的[React全家桶入门],在此学到了很多关于react的的基础知识,引入了Ant Design,同时还学怎么用json server
#### 第一步骤 开始使用 Spring Boot 前,需要了解其基本概念和特点,为后续开发打下基础。Spring Boot 的主要优势在于其“开箱即用”的特性,它能够自动配置许多常见的设置,并且减少了大量样板代码的需求。 #### ...
这通常是将Java项目打包成可执行文件的第一步,因为Install4j通常需要一个可运行的jar作为输入。 综合以上信息,这篇博客和提供的文档组合,应该为读者提供了一个从编写源代码到使用Install4j生成.exe文件的完整...
- **第一段代码**:通过示例演示Hibernate的基本使用。 - **Hibernate基础语义**:包括Configuration、SessionFactory、Session等概念及其使用方法。 - **Hibernate高级特性**:涵盖了XDoclet与Hibernate映射、...
鼠年新的工作日开始了,新的一年新的工作学习,第一个工作日给自己定一些要求吧。 想写一个系列【隐匿撕源码】 剖析各种经典框架,工具,JDK的源码提升自己,同时给大家分享一些心得。这篇文章就作为开端,干就完事...
3. 社区分享:Fermentation.app构建了一个互动社区,用户可以分享自己的发酵成果,交流心得,提问和解答问题,促进了全球发酵爱好者的交流与学习。 二、JavaScript技术实现 作为主要开发语言,JavaScript在...
- **背景**: 作者自工作以来一直关注插件体系结构,从早期接触ant、maven等工具开始,逐渐认识到模块化的重要性。 - **目标**: 通过本书籍,作者旨在分享其在OSGI领域的实践经验,特别是使用Equinox框架的心得体会。...