`

ant学习(二)--快速开始

    博客分类:
  • ant
阅读更多

上次讲了ant的安装和配制,这一节主要来看一个例子来体验一下ant的魅力。

 

在开始例子之前,首先来看一下ant安装包目录结构

 

ant
   +--- README, LICENSE, fetch.xml, 其它文件. //一些提供基本信息的文件
   +--- bin  //这个目录下包含了一些启动ant的bat、shell等脚本
   |
   +--- lib  // 包含ant 及其依赖的jar
   |
   +--- docs // 一些文档放在这个目录下
   |      |
   |      +--- images  // 文档里面的一些图片
   |      |
   |      +--- manual  // ant文档
   |
   +--- etc // 包含有各种作用的xsl文件:
            //   - 创建一个各种任务输出到xml的加强报告
            //   - 迁移您的构建文件和摆脱“过时”的警告
            //   - ... 其它作用 ;-)

 

这一个本来应该放在第一节的。这里补充一下:)

 

 

开始我们的例子

 

设想好构架

首先在上面的ant目录下新建一个test文件夹,以保存我们的例子,(当然你也可以在其它地方,这个依个人习惯)。

在test目录下有这样一个目录结构。

 

 test
     +---src
            |
            +---com
                     |
                     +---sample
                               |
                               +---Project.java

 

Project.java代码如下:

 

//这里的代码可以随意,不写都没关系
public class Project 
{
    public static void main(String args[]) 
    {	
		
	System.out.println("test!"); 
		
    }
}
 

 

这个目录很像eclipse里面看到的项目结构,test就一个项目,要的就是这种效果:)

那我们如果用ant对这个项目进行编译、执行、打包呢?

首先我们要做的事是想好要把编译和打包后的class、jar文件放在哪里,我这里打算把编译的class文件夹放在test/build/classes文件夹下,把打包后的jar文件放在test/build/libs下。这里并不是真的要自己去建build、classes、libs文件夹,我会让ant自己去建些文件夹。

 

编写ant配制文件

下面将开始最关键的步骤,编写ant的build.xml文件。ant要做的事都写在这个文件里面,我把它放在test目录下。build.xml文件如下:

 

<?xml version="1.0" encoding="GB2312" ?>
<project name="main" default="complie" basedir=".">
	<property name="src.dir" value="src"/>
	<property name="build.dir" value="build"/>
	<property name="build.lib" value="${build.dir}/lib"/>
	<property name="build.classes" value="${build.dir}/classes"/>

    <!-- build directories -->
	<target name="prepare">
		<mkdir dir="${build.dir}"/>
		<mkdir dir="${build.lib}"/>
		<mkdir dir="${build.classes}"/>
	</target>

	<!--javac code-->
	<target name="complie" depends="prepare">
		<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="on"/>
	</target>

	<!--java code-->
	<target name="run" depends="complie">
		<java classname="Project" classpath="${build.classes}"/>
	</target>

	<!-- jar code -->
	<target name="jar" depends="complie">
		<jar jarfile="${build.lib}/Project.jar" 
				basedir="${build.classes}" >
			<manifest>
				<attribute name="Main-class"  value="Project"/>
			</manifest>
		</jar>
	</target>

	<target name="clean">
		<delete dir="${build.dir}"/>
	</target>

</project>
 

 

对上面build.xml进行分析

 

<?xml version="1.0" encoding="GBK2312" ?>

这一句xml文件基本都有,需要注意的是encoding="GB2312" 这一句,如果不写或写成encoding="UTF-8",文件中有中文时会报错.

 

<project name="test" default="complie" basedir=".">

</project>

ant的所有内容必须包含在这个里边,name是你给它取的名字(任意写),basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的任务。

 

 

<property name="src.dir" value="src"/>

<property name="build.dir" value="build"/>

<property name="build.lib" value="${build.dir}/lib"/>

<property name="build.classes" value="${build.dir}/classes"/>

 

这一堆是类似定义了java里面的变量(name是变量名,value是值),${XXX} 就是取上面定义的值。

 

 

 

 <!-- build directories -->

<target name="prepare">

<mkdir dir="${build.dir}"/>         //建build文件夹

<mkdir dir="${build.lib}"/>         //建lib文件夹

<mkdir dir="${build.classes}"/> //建classes文件夹

</target>

这一陀是说定义了一个任务,名叫prepare。每个任务写成一个target,<mkdir>什么的就是建了一堆文件夹

 

 

 

 

<!--javac code-->

<target name="complie" depends="prepare">

<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="on"/>

</target>

这里建了一个叫complie的任务,depends就是它所依赖要做的任务。比如ant执行到<target name="complie" depends="prepare">这里的时候,它发现有一个依赖,就会去判断prepare这个任务有没有被执行过,如果执行过了就直接执行complie这个任务,如果没有就执行prepare这个任务。

<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="on"/> 这句就是编译,javac命令应该都熟悉,srcdir是指定要编译的文件夹,destdir是指定编译后的class文件放置的文件夹。

 

 

 

 

<!--java code-->

<target name="run" depends="complie">

<java classname="Project" classpath="${build.classes}"/>

</target>

这里是运行java代码。要先做这个任务,就要先做complie。classname指定class文件,classpath指定class文件的位置。

 

 

 

 

<!-- jar code -->

<target name="jar" depends="complie">

<jar jarfile="${build.lib}/Project.jar" 

basedir="${build.classes}"> 

<manifest>

<attribute name="Main-class"  value="Project"/>

</manifest>

</jar>

</target>

打包成jar文件。jarfile指定要生成的jar(带路径),basedir指定要打包的class文件。

 

<manifest>

<attribute name="Main-class"  value="Project"/>

</manifest>

这个是在生成的jar文件里面的MANIFEST.MF文件里面加入”Main-class: Project“这样一句话。如果不加,你打包的jar文件,在命令行运行 java -jar Project.jar 会报错。

 

 

 

<target name="clean">

<delete dir="${build.dir}"/>

</target>

这个就是把build文件夹删除。如果运行这个任务的话,以前构建的东东就会被删除掉,可以重新构建。可以在prepare加了这个作为依赖。

 

运行

开始-->运行-->cmd进入命令行-->进入test目录

输入ant,就会默认运行complie任务,你也可以输入ant compile 、ant clean、ant run、ant jar 单独一个。

 

结果

假设你输入了ant jar,我们来看一下,现在的test文件夹下是怎么样子的。

test
     +---src
      |     |
      |     +---com
      |              |
      |              +---sample
      |                        |
      |                        +---Project.java
      |---build
      |         |
      |         +---classes
      |         |           |
      |         |           +---Project.class
      |         +---libs
      |                   |
      |                   +---Project.jar
      |---build.xml
 

 

 

 

 

 

 

4
0
分享到:
评论

相关推荐

    基于vue-cli3 和 ant-design-vue搭建的后台管理系统模板

    Vue CLI 3是Vue.js官方提供的一个快速脚手架工具,它简化了项目的初始化和配置过程,而Ant Design Vue则是一个基于Vue.js的高质量前端组件库,灵感来源于Ant Design设计体系。 首先,让我们了解Vue CLI 3。Vue CLI ...

    ant-designer-vue离线文档1.+版本

    5. **完善的API和示例**:离线文档中详尽的API文档和示例代码,使得开发者能快速上手,减少学习曲线。 6. **国际化支持**:内置多语言支持,方便开发者实现项目的全球化。 7. **与Vue.js深度集成**:充分利用Vue的...

    ant-design-demos

    Ant Design是一款由阿里集团开发的高质量React UI库,它提供了一系列美观、易用且具有企业级特性的组件,如按钮、表单、表格、导航、模态框等,旨在提升前端开发效率,实现快速构建企业级Web应用。 描述中提到可以...

    ant-design-pro-master

    这个项目主要用于学习和理解如何有效地构建专业级的Web应用,尤其是对于那些想要深入了解Ant Design和ES6特性的开发者来说,具有很高的参考价值。 Ant Design 是一个流行的React UI组件库,提供了丰富的界面元素和...

    apache-ant-1.9.9-bin

    6. **README** 文件:通常包含了快速入门指南和安装提示,帮助开发者快速开始使用Ant。 在使用Apache Ant时,开发者会创建一个名为`build.xml`的文件,该文件定义了构建过程。XML结构使得构建过程可读性强,易于...

    基于 umijs + electron + ant-design-pro 的项目模板开发代码

    它提供了预设的布局、样式和组件,使得开发者可以快速搭建美观且响应式的用户界面。`ant-design-pro`不仅包含常见的表单、按钮、布局等组件,还提供了如图表、看板等更复杂的业务组件,极大地提高了开发效率。 在...

    apache-ant-1.9.9-bin.zip 【windows版,32位和64位通用】

    这个版本包含了Ant运行所需的全部二进制文件和资源,方便开发者在Windows环境下快速搭建和管理项目的构建过程。 Apache Ant的核心概念是基于XML的构建文件(build.xml),其中定义了各种任务(tasks)和目标...

    ant-apache-log4j.jar.zip

    《Ant、Apache与Log4j:深入理解jar.zip包》 在软件开发中,我们经常遇到各种工具和库,它们是构建复杂系统的关键组件。...在实际工作中,我们需要不断学习和掌握这些基础工具,以适应快速发展的软件工程环境。

    使用vue3+ant-design-vue+vite+ts开发的通用中后台框架,实现了权限系统.zip

    Vue 3.2 -- 使用vue3+ant-design-vue+vite+ts开发的通用中后台框架,实现了权限系统、动态菜单、国际化、mock数据、表格集成快速使用等功能,简洁干净开箱即用。. 各领域数据集,工具源码,适合毕业设计、课程设计...

    apache-ant-1.9.6-bin.zip

    阅读这个文件可以帮助用户快速了解如何开始使用Ant,并解决可能出现的初始问题。 2. **apache-ant-1.9.6**:这是Ant的二进制发行版,包含所有运行Ant所需的文件。这个目录下通常会有以下几个关键子目录和文件: -...

    ant-design-vue-pro-master.zip

    多页签功能是前端开发中常见的需求,它允许用户在多个视图之间快速切换而无需加载整个页面。在Ant Design Vue Pro Master中,这个功能可能是通过Vue Router的嵌套路由和动态路由匹配实现的。每个页签对应一个独立的...

    av-table是居于ant-design-vue(版本3.2.20) 的 a-table组件封装的虚拟列表组件.zip

    通过解压并研究这些文件,开发者可以学习如何集成和使用 av-table,同时也能理解其内部工作机制,以便进行二次开发或定制。 "说明.txt" 文件很可能是对 av-table 组件的使用说明或开发者指南,包括安装步骤、基本...

    管理系统系列--vue+ant-design-vue创建后台管理系统模板.zip

    通过学习和研究这些源代码,开发者可以更深入地理解如何将Vue.js与ant-design-vue结合,以实现一个完整的后台管理系统模板。这不仅对初学者是一次宝贵的实践机会,对有经验的开发者来说也是巩固和扩展技能的好途径。

    基于 vue、ant-design-vue 的自定义Antdv 工作流组件

    Ant Design Vue,简称Antdv,是Ant Design设计语言的Vue实现,它提供了一系列高质量的UI组件,帮助开发者快速构建美观的企业级应用。Ant Design Vue的设计理念注重实用性和一致性,使得开发者可以方便地集成到项目中...

    基于 vue3 + ant-design-vue 的中后台管理系统.zip

    Vue3 是 Vue.js 的最新版本,提供了许多性能优化和新特性,而 Ant Design Vue 是一套基于 Vue2 和 Ant Design 设计规范的组件库,但在 Vue3 的支持下,它能够帮助开发者快速构建美观的用户界面。 **Vue3 知识点:**...

    基于vue+ant-design-vue创建后台管理系统模板.zip

    【Vue.js】 ...开发者和学习者可以从中学习到Vue.js的组件化开发、Ant Design Vue的UI设计、以及如何构建一套功能完善的后台管理系统。同时,源码的提供有助于深入研究和自定义项目,满足不同场景的需求。

    全栈-Vite3+Vue3+TS+Ant-design-vue3整合

    在本项目中,我们探索了如何使用最新技术栈进行全栈开发,重点是前端的Vite3、Vue3、TypeScript以及Ant Design Vue3的整合,同时涉及后端的SpringBoot、MybatisPlus和MySQL。这是一个全面的实战教程,旨在帮助开发者...

    ant-design-vue-jeecg-master.zip

    Ant Design Vue Jeecg 是一个基于 Vue.js 和 Ant Design Vue 的强大前端框架,用于快速构建企业级中后台应用。这个项目代码库,"ant-design-vue-jeecg-master.zip",提供了完整的前端开发资源,适合开发者们学习和...

    ant-design-pro前端

    压缩包中的"demo1"可能是一个示例项目或者一个演示应用,它通常包含了Ant Design Pro的基本用法和配置,帮助开发者快速上手。通过研究和运行这个示例,我们可以学习如何设置项目结构,如何导入和使用组件,以及如何...

    前端项目-ant-design-pro.zip

    总的来说,"ant-design-pro.zip" 包含了一个使用React.js和Ant Design Pro构建的前端项目,涵盖了前端开发的多个方面,如UI设计、状态管理、模块打包和测试等,对前端开发者来说,这是一个深入了解和学习现代前端...

Global site tag (gtag.js) - Google Analytics