`
isiqi
  • 浏览: 16464180 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

什么是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简介及实例pdf”中,我们将会探讨Ant的基本概念、安装步骤以及一个实际应用的示例。 首先,让我们了解一下Ant的基本概念。Ant是一个基于任务驱动的构建工具,它的核心是构建文件(通常命名为build.xml)...

    Ant简介(标签)

    ### Ant简介 #### 一、Ant概述 Ant是一款开源的Java构建工具,它主要用于构建Java应用程序,同时也支持其他类型的项目构建。与传统的构建工具(如make、gnumake和nmake)相比,Ant的设计更加现代化且具备良好的跨...

    ant简介

    Ant是Apache软件基金会下的一个Java构建工具,它以其XML配置文件为核心,用于自动化构建Java项目。这个工具在软件开发过程中起到了关键的角色,特别是在构建、测试和部署应用时。本篇文章将深入探讨Ant的基本概念、...

    关于ant简介及 配置

    Ant 是一个基于Java的构建工具,它主要用于自动化软件项目的构建过程,如编译源代码、打包、测试等。Ant 的核心理念是通过XML格式的构建脚本来定义项目构建的各个步骤,使得开发者能够以声明式的方式描述项目构建的...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    1. **Ant简介** - Ant是一个基于Java的构建工具,它简化了软件项目的构建过程,特别是Java项目。 - 它的核心概念是任务(Task),这些任务是由Ant提供的或者由用户自定义的,用于执行各种构建操作,如编译、复制、...

    Ant简介-----关于ant使用的简单教程

    Ant是Java开发中的一款自动化构建工具,类似于Unix的make,主要负责编译、运行、打包Java程序等构建过程。它的核心由Project、Target和Task三个主要部分组成。 1. Project(项目) Project是Ant的基本组织单元,...

    Ant入门-ant入门pdf

    1. **Ant简介**:解释Ant是什么,为什么需要它,以及它在软件开发中的角色。 2. **Ant基本结构**:介绍构建文件`build.xml`的结构,包括项目(project),目标(target),任务(task),以及属性(attributes)等元素。 3...

    Ant 资源 Ant 资源

    #### 一、Ant简介 **Ant**是一款开源的Java构建工具,主要用于自动化构建过程,如编译、测试、部署等。它最初由James Duncan Davidson开发,现归属于Apache软件基金会。 ##### 1.1 什么是Ant? - **Ant**是一个用...

    Ant权威指南(ant 学习)

    一、Ant简介 Ant是Apache软件基金会开发的一个Java项目构建工具,它的设计目标是简化项目构建过程,提供一种跨平台的解决方案。Ant的主要优点在于其灵活性和可扩展性,通过自定义任务和宏定义,可以实现各种复杂的...

    Ant应用开发指南(学习ant的必备资料)

    ### 一、Ant简介 Ant是一个开源的Java编译和构建工具,它以XML文件形式接受指令,这使得Ant不仅可扩展,而且易于维护。其平台独立性——完全由Java编写——意味着无论是在Windows、Linux还是其他操作系统上,Ant都...

    ant1.8 部署 apache-ant-1.8.2

    1. **Ant简介** Apache Ant是一个由Apache软件基金会开发的任务驱动的构建工具。它的设计理念是"一切都是文件",通过XML文件(通常称为build.xml)来描述构建过程。这使得构建过程可移植且易于维护。 2. **Ant ...

    用ANT构造Application

    #### ANT简介 ANT是Apache提供的一款专为Java开发者设计的强大构建工具。作为一款开源软件,ANT支持跨平台操作,在Windows和Unix操作系统上均可运行。相较于传统的shell脚本构建工具(例如make或makefile),ANT...

    Ant详细配置总结

    #### 一、Ant简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者能够通过简单的XML配置...

    Ant教程 doc文件

    #### 一、Ant简介 Apache Ant,全称为Another Neat Tool,是一种基于Java的构建工具,旨在提供一种比传统构建工具如Make更灵活、可移植的解决方案。Ant的设计哲学在于克服Make工具的局限性,尤其是在跨平台开发中的...

    ant文档集合(自己学习ant时的资料)

    1. **Ant简介** Ant是一个基于Java的构建工具,它的设计目标是简化Java项目构建过程,通过XML描述构建脚本来实现自动化任务。它不受任何特定IDE的限制,可以在任何支持Java的环境中运行。 2. **Ant的基本结构** ...

    ant实用实例 详细解析ant的用法

    #### 一、Ant简介与基本概念 Apache Ant 是一个Java环境下的开源项目构建工具,主要用于自动化构建、部署等任务。它使用XML来描述构建过程,并且提供了丰富的任务(task)集合,能够简化项目构建流程。Ant的核心优势...

    如何用ant生成javadoc

    #### 二、Ant简介与安装 **1. Apache Ant简介** Apache Ant是一款开源的Java构建工具,它通过XML文件定义构建过程,可以用来编译、调试、测试和部署Java应用程序。Ant提供了丰富的内置任务(task),支持多种任务的...

Global site tag (gtag.js) - Google Analytics