什么是Ant
一种基于Java的构建工具,可以用于自动化的building,packaging,andinstallingJavaapplications,与Linux中的makefile实现同样的功能,配置文件是以XML形式的。
安装Ant?
下载Ant的二进制包:
http://ant.apache.org/bindownload.cgi
设置ANT_HOME主目录环境变量
设置Path环境变量$ANT_HOME/bin
确定JAVA_HOME环境变量指定到JDK
运行Ant
在命令行输入“ant”
Ant则自动在当前目录下寻找build.xml文件以便运行
可以在命令行输入“ant–buildfilebuild.xml”指定一个特定的buildfile.xml用于运行
Ant的配置文件build.xml举例:
<projectname="MyProject"default="dist"basedir=".">
<propertyname="src"location="src"/>
<propertyname="build"location="build"/>
<propertyname="dist"location="dist"/>
<targetname="init">
<tstamp/>
<mkdirdir="${build}"/>
</target>
<targetname="compile"depends="init">
<javacsrcdir="${src}"destdir="${build}"/>
</target>
<targetname="dist"depends="compile">
<mkdirdir="${dist}/lib"/>
<jarjarfile="${dist}/lib/MyProject-${DSTAMP}.jar"basedir="${build}"/>
</target>
<targetname="clean">
<deletedir="${build}"/>
<deletedir="${dist}"/>
</target>
</project>
每个Ant配置文件只包含一个project标签和至少一个target标签
Project标签设置基本的项目属性,它有三个properties:
-name
-defaulttarget
-basedir
例如:<projectname=“MyProject”default=“build”basedir=“.”>
Target是Ant中的一个构建模块
每个target包含一些需要Ant做的task(s)
每个project标签必须有一个默认的Target
Targets的总体结构如下:
<targetname="A"/>
<targetname="B"depends="A"/>
<targetname="C"depends="B"/>
<targetname="D"depends="C,B,A"/>
每个target包含一个或多个tasks
Task是一段可执行的Java代码(e.g.javac,jar,etc)
Tasks是Ant中的真正“build”工作的模块
Ant有核心任务(builtin)和创建自定制任务的能力
例子:
<targetname="prepare"depends="init“>
<mkdirdir="${build}"/>
</target>
<targetname="build"depends="copy">
<javacsrcdir="src"destdir="${build}">
<includename="**/*.java"/>
</javac>
</target>
添加目录操作
<targetname="init">
<mkdirdir="${dist.dir}"/>
<mkdirdir="${dist.classes.dir}"/>
<mkdirdir="${dist.webapps.dir}"/>
</target>
编译java文件操作
<targetname="compile">
<javacsrcdir="${dist.dir}"destdir="${dist.classes.dir}"debug="true"encoding="GBK">
<classpathrefid="classpath"/>
</javac>
<jardestfile="${dist.classes.dir}/lin/app.jar"basedir="${dist.classes.dir}"/>
</target>
打Jar包操作
<targetname="jar">
<jardestfile="${dist}/lib/app.jar">
<filesetdir="${build}/classes"excludes="**/Test.class"/>
<filesetdir="${src}/resources"/>
</jar>
</target>
复制文件操作
<targetname=“copy">
<copytodir="${dist.webapps.dir}/WEB-INF/lib"overwrite="true"flatten="true">
<filesetdir="${lib.dir}">
<includename="*.jar"/>
<excludename="j2ee.jar"/>
</fileset>
</copy>
</target>
删除操作
<targetname="clean">
<deletedir="${dest.dir}"/>
<deletedir="${dest2.dir}"/>
</target>
写自定制的任务
创建一个从继承org.apache.tools.ant.Task的Java类
对每一个属性,写一个publicvoid的setter方法并带一个参数
写一个publicvoidexecute()可以抛出BuildException异常但没有参数的方法,该方法实现自定制的任务
用于设置build.xml的properties:
例如:
<propertyname=“src”value=“/home/src”/>
可以在配置文件任何地方使用${src}来表示/home/src目录
只要由<property>指定的值,Ant可以提供任何访问
Ant提供了方法用来设置各种环境变量,诸如PATHandCLASSPATH.
设置CLASSPATH的例子:
<classpath>
<pathelementpath="${classpath}"/>
<pathelementlocation="lib/helper.jar"/>
</classpath>
命令行参数
-buildfilebuildfile–指定要使用的build文件
targetname–指定要运行的target(代替执行默认的target)
-verbose,-quiet,-debug–控制Ant输出的日志信息
-loggerclassname–AllowsusertospecifytheirownclassesforloggingAntevents
使用Ant自动化部署数据库
说明:
1
createDB_MySQL
创建用于添加表的数据库
2
createTAbles_MySQL
创建用于操作/测试的表
3
dropDB_MySQL
丢弃数据库
注意:
需要提供四个sql脚本文件
sample_project.sql
employees.sql
project.sql
timetable.sql
设置基本的buildfile.xml属性
<projectname="Databasecreation"default="createTables_MySQL"basedir=".">
<!--可以使用一个property文件,如<propertyfile="${basedir}/build.properties"/>-->
<propertyname="sql.dirver"value="org.git.mm.mysql.Driver"/>
<propertyname="sql.url"value="jdbc:mysql://localhost/sample_project"/>
<propertyname="sql.user"value=""/>
<propertyname="sql.pass"value=""/>
<targetname="createDB_MySQL">
<sqldirver="${sql.driver}"
url="${sql.url}"
userid="${sql.user}"
password="${sql.pass}"
classpath="mysql-connector-java-3.0.9-stable-bin.jar"
src="sample_project.sql"/>
</target>
<targetname="createTables_MySQL">
<sqldirver="${sql.driver}"url="${sql.url}"userid="${sql.user}"password="${sql.pass}">
<classpath>
<pathelementlocation="mysql-connector-java-3.0.9-stable-bin.jar"/>
</classpath>
usesample_project;
<transactionsrc="employees.sql"/>
<transactionsrc="project.sql"/>
<transactionsrc="timetable.sql"/>
</sql>
</target>
<targetname="dropDB_MySQL">
<inputmessage="Doyoureallywanttodeletethistable(y/n)?"validargs="y,n"addproperty="do.delete"/>
<conditionproperty="do.abort">
<equalsarg1="n"arg2="${do.delete}"/>
</condition>
<failif="do.abort">Buildabortedbyuser.</fail>
<sqldirver="${sql.driver}"url="${sql.url}"userid="${sql.user}"password="${sql.pass}">
<classpath>
<pathelementlocation="mysql-connector-java-3.0.9-stable-bin.jar"/>
</classpath>
dropdatabasesmaple_project;
</sql>
</target>
</project>
我们可以在编写好需要持久化的类的映射文件*.hbm.xml后,使用org.hibernate.tool.hbm2ddl.SchemaExport来自动建立数据库表格,假设我们的User.hbm.xml如下:
User.hbm.xml
<hibernate-mapping>
<classname=“com.cstp.User"table="user">
<idname="id"column="id"type="java.lang.Integer">
<generatorclass="native"/>
</id>
<propertyname="name"column="name"type="java.lang.String"/>
<propertyname=“age"column=“age"type="java.lang.integer"/>
</class>
</hibernate-mapping>
编写如下程序从映射文件生成数据库表格
HbmtoTable.java
packagecom.cstp;
importorg.hibernate.cfg.Configuation;
importorg.hibernate.tool.hbm2ddl.SchemaExport;
publicclassHbmToTable{
publicstaticvoidmain(String[]args){
Configurationconfig=newConfiguration().configure();
System.out.println("Creatingtables");
SchemaExportschemaExport=newSchemaExport(config);
schemaExport.create(true,true);
}
}
方法一:
借助MyEclipse的Hibernate逆向工程方案
首先在数据创建好数据库和对应表格
注意:表格之间的主外键依赖关系一定要设置对
其次,在MyEclipse中利用逆向工程,直接生成对应的持久化类和对应的Hibernate映射文件
注意:生成的持久化类需要稍微修改,以便符合Hibernate的要求
方法二:
借助Middlegen-Hibernate工具
首先下载Middlegen-Hibernate,下载后将其解压缩
其次,在数据库创建好对应的表格
然后,进入Middlegen-Hibernate解压缩后的config/database目录中,开启mysql.xml,修改当中的数据库配置相关信息
最后在Middlegen-Hibernate目录下,开启Ant的构建文件,修改build.xml文件
第一个需要设定的是所使用的数据库配置文件,改为mysql.xml
第二个是设定应用程序名
第三个是设定自动产生文件的输出目录
第四个是设定你的package名称
其它可以不变
修改完成后,进入Middlegen-Hibernate目录下,执行Ant构建,如果成功,出现一个窗口,进行进一步的设置
设置完成后,点击窗口的generate按钮,即可产生数据库表格对应的类映射文件
开启mysql.xml
<!--=========================================================-->
<!--antproperties/targetsformysql-->
<!--note:thisisnotaproperxmlfile(thereisnorootelement)-->
<!--itisintendedtobeimportedfroma*real*xmlfile-->
<!--==========================================================-->
<propertyname="database.script.file"value="${src.dir}/sql/${name}-mysql.sql"/>
<propertyname="database.driver.file"value="${lib.dir}/mysql-connector-java-3.0.14-production-bin.jar"/>
<propertyname="database.driver.classpath"value="${database.driver.file}"/>
text-alig
分享到:
相关推荐
在这个“ant简介及实例pdf”中,我们将会探讨Ant的基本概念、安装步骤以及一个实际应用的示例。 首先,让我们了解一下Ant的基本概念。Ant是一个基于任务驱动的构建工具,它的核心是构建文件(通常命名为build.xml)...
### Ant简介 #### 一、Ant概述 Ant是一款开源的Java构建工具,它主要用于构建Java应用程序,同时也支持其他类型的项目构建。与传统的构建工具(如make、gnumake和nmake)相比,Ant的设计更加现代化且具备良好的跨...
Ant是Apache软件基金会下的一个Java构建工具,它以其XML配置文件为核心,用于自动化构建Java项目。这个工具在软件开发过程中起到了关键的角色,特别是在构建、测试和部署应用时。本篇文章将深入探讨Ant的基本概念、...
Ant 是一个基于Java的构建工具,它主要用于自动化软件项目的构建过程,如编译源代码、打包、测试等。Ant 的核心理念是通过XML格式的构建脚本来定义项目构建的各个步骤,使得开发者能够以声明式的方式描述项目构建的...
1. **Ant简介** - Ant是一个基于Java的构建工具,它简化了软件项目的构建过程,特别是Java项目。 - 它的核心概念是任务(Task),这些任务是由Ant提供的或者由用户自定义的,用于执行各种构建操作,如编译、复制、...
Ant是Java开发中的一款自动化构建工具,类似于Unix的make,主要负责编译、运行、打包Java程序等构建过程。它的核心由Project、Target和Task三个主要部分组成。 1. Project(项目) Project是Ant的基本组织单元,...
1. **Ant简介**:解释Ant是什么,为什么需要它,以及它在软件开发中的角色。 2. **Ant基本结构**:介绍构建文件`build.xml`的结构,包括项目(project),目标(target),任务(task),以及属性(attributes)等元素。 3...
#### 一、Ant简介 **Ant**是一款开源的Java构建工具,主要用于自动化构建过程,如编译、测试、部署等。它最初由James Duncan Davidson开发,现归属于Apache软件基金会。 ##### 1.1 什么是Ant? - **Ant**是一个用...
一、Ant简介 Ant是Apache软件基金会开发的一个Java项目构建工具,它的设计目标是简化项目构建过程,提供一种跨平台的解决方案。Ant的主要优点在于其灵活性和可扩展性,通过自定义任务和宏定义,可以实现各种复杂的...
### 一、Ant简介 Ant是一个开源的Java编译和构建工具,它以XML文件形式接受指令,这使得Ant不仅可扩展,而且易于维护。其平台独立性——完全由Java编写——意味着无论是在Windows、Linux还是其他操作系统上,Ant都...
1. **Ant简介** Apache Ant是一个由Apache软件基金会开发的任务驱动的构建工具。它的设计理念是"一切都是文件",通过XML文件(通常称为build.xml)来描述构建过程。这使得构建过程可移植且易于维护。 2. **Ant ...
#### ANT简介 ANT是Apache提供的一款专为Java开发者设计的强大构建工具。作为一款开源软件,ANT支持跨平台操作,在Windows和Unix操作系统上均可运行。相较于传统的shell脚本构建工具(例如make或makefile),ANT...
#### 一、Ant简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者能够通过简单的XML配置...
#### 一、Ant简介 Apache Ant,全称为Another Neat Tool,是一种基于Java的构建工具,旨在提供一种比传统构建工具如Make更灵活、可移植的解决方案。Ant的设计哲学在于克服Make工具的局限性,尤其是在跨平台开发中的...
1. **Ant简介** Ant是一个基于Java的构建工具,它的设计目标是简化Java项目构建过程,通过XML描述构建脚本来实现自动化任务。它不受任何特定IDE的限制,可以在任何支持Java的环境中运行。 2. **Ant的基本结构** ...
#### 一、Ant简介与基本概念 Apache Ant 是一个Java环境下的开源项目构建工具,主要用于自动化构建、部署等任务。它使用XML来描述构建过程,并且提供了丰富的任务(task)集合,能够简化项目构建流程。Ant的核心优势...
#### 二、Ant简介与安装 **1. Apache Ant简介** Apache Ant是一款开源的Java构建工具,它通过XML文件定义构建过程,可以用来编译、调试、测试和部署Java应用程序。Ant提供了丰富的内置任务(task),支持多种任务的...