11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

企业级 Java 软件构建系统 EL4Ant

  • 2007-04-28
  • 本文字数:3322 字

    阅读完需:约 11 分钟

本文将介绍一个企业级 Java 软件构建系统 EL4Ant ,该工具可以为构架一个自己的开发运行软件系统提供很好的基础保证,它不仅让你无需关心 Apache Ant 的构建文件 build.xml 如何修改或者增加构建任务,而且使得你的软件在企业中达到构建工作高度的标准化、构建命令基于 Java 代码的可扩展性及其可重用性和开发软件工作的规范化。

另外本文还将阐述该工具如何和软件集成开发工具 Eclipse 和网络服务器 Apache Tomcat 简单而方便地一起工作,之后将用实例阐述该工具是如何快速和简单地开发和管理复杂大型 Java 软件工程项目的可能性。利用该系统和集成第三方软件框架开发 Java 服务端软件如下图所示,它不间断地处理网络中的数据传输。

EL4Ant 系统主要优势

软件构建工具是为了软件的开发、编译和部置更为方便和简洁。在软件企业中,好的软件构建工具对于软件开发效率会有极大的提高,因此选择好一个软件构建工具应该是软件企业的一个重要环节。在每一门计算机语言中都有自己的软件构建工具。C/C++ 语言有 make 工具作为它重要的软件构建;Ruby 语言也有自己的软件构建工具 rake (ruby make),它们在各自语言的软件开发中起到了重要作用。同样地,Java 语言也有自己的基础软件构建工具 Apache Ant 和在其基础上发展起来的重要软件构建工具 Apache maven ,它们都在 Java 软件开发中得到了充分应用。

因为 Java 语言软件的多样性和复杂性,所以如何为自己的软件找到一个适合的构建工具是十分必要的。你是否想要有一个工具既简单方便地被我们所使用,也不需要自己再写 xml 文件,还要为我们提供已定制好的所有常用的构建命令,又能够为我们快速地把它和主流的集成开发工具 Eclipse 一起工作?更进一步地,把构建命令作为一个程序 Java 程序来进行开发,如果你想扩展你的构建命令的话?下面我们就来介绍一种这样的软件构建系统 EL4Ant 。该工具来自于现实的软件开发项目,也希望能为你的实际工作服务。

任何一个应用软件框架都离不开一个有效的软件构建系统,比如 Ruby on Rails 框架的成功就有一个很好的构建工具 rake。EL4Ant 系统是一个轻量级的、高效的和基于 Apache Ant 的软件构建工具。大家知道,真正的实际项目会有大量的子项目,而在子项目下面还有很多模块,管理和开发这些项目和模块是一个相当复杂而又繁重的任务。该工具可以帮助你简单地完成这些事情,它能够把一个实际项目根据你的需要分成若干个开发项目(我们在这里把它称之为工程),在每个工程下面可以创建若干个模块,在这个模块下面再可以有若干个 Eclipse 项目(自动产生 Eclipse 项目的基本配置文件)。所有这些基于模块的 Eclipse 项目的依赖关系和属性都可以由你自己简单地进行配置和定义的。

一旦你把你的工程、模块和 Eclipse 项目定义好之后,其它工作都由工具 EL4Ant 来完成了。工具 EL4Ant 把所有构建命令都为你准备好了。从层次上来说,每个 Eclipse 项目都有相应的编译和运行命令,每个模块也是如此,你不必为每个 Eclipse 项目进行编译等工作。从构建命令来说,不仅仅有软件构建工具基本代码的编译、编译好的代码删除和通过 Main 类代码执行等功能,还有大量十分有用的命令,执行 JUnit 、生成 Javadoc 文档、生成 Checkstyle 报告和和执行测试覆盖率工具 EMMA 并且生成其报告等。

EL4Ant 系统是一款绿色软件构建工具。你可以把它及其所有的工具(Ant 和 Tomcat 等)和你软件开发所需要的第三方软件包一起带走,移到任何机器和任何目录下工作,一切照样进行,不需要你再作任何开发的配置工作。

EL4Ant 系统版本说明、安装及相关软件

EL4Ant 系统目前主要有两个版本 0.9.2 和 0.9.3,最新版本 0.9.3 修改了大量的问题报告,使得该系统更为成熟,而版本 0.9.2 在使用时会发生一个小错误。两个版本都可下载,都包含有两个部分:一个含基本实例项目的开发系统和一个该系统的原代码。我们本文使用版本 0.9.3。要是我们作为软件开发人员使用该系统的话,一般只需要系统本身,而不需要该系统的源代码,但是如果我们发现系统本身少了某些必要的内容,那么你可能需要下载源代码。源代码的另外用途是你在开发该系统的构建命令插件时参考相应的插件代码会有用。你可以在这里下载它们。

把下载的文件 ant+el4ant+helloworld_0.9.3.zip 解压并且存放到你希望的目录 %EL4ANT_HOME% 下。这儿你需要设定环境变量 EL4ANT_HOME。

安装和配置 Java 语言开发环境 Java SDK 5.0 和安装集成开发工具 Eclipse 3.2 或者以上版本是我们本文的前提条件。

假定你的 Eclipse 软件安装在目录 %EL4ANT_HOME% 下,创建一个软件 Eclipse 的桌面链接,并且设定如下:

%EL4ANT_HOME%\eclipse\eclipse.exe -data %EL4ANT_HOME%\workspace

EL4Ant 系统结构说明

在目录 %EL4ANT_HOME% 下你现在应该看到四个目录:

复制代码
ant
demo-project
el4ant
workspace

除了目录 ant 安装了软件 ant 和目录作为 Eclipse 项目的工作目录外,最重要的目录是 el4ant 和 demo-project。在 El4Ant 的系统目录 el4ant 下有两个目录 lib 和 project-template,目录 project-template 仅仅是一个模板,它在这个目录里不是一定要的,这个模板我们称之为工程。目录 demo-project 就是这个模板的一个实例,或者说是 EL4Ant 系统的一个工程实例。而存放所有的系统软件包的目录 lib 是必须的。

EL4Ant 系统可以有若干个工程。工程目录是我们实际软件项目存放的位置。在这个工程目录里有若干个模块,在模块下可以有若干个 Eclipse 项目。一般情况下工程是和目录 ant 同级;模块是工程的子目录;Eclipse 项目目录可以在模块下的目录或者下一级或者再下几级目录里。

目前在工程目录 demo-project 下应该存在三个 xml 文件。这三个文件中最重要的也是经常修改的文件是 project.xml,该文件把 Eclipse 的项目和属性一次搞定,其它两个文件很少修改。在你编译以后会自动产生一个 ant 文件 build.xml,这个文件不需要去修改。

集成 Tomcat 版本 5.5+ 到 EL4Ant 系统

下面我们简单说明一下网络容器集成到 EL4Ant 系统中。先在目录 %EL4ANT_HOME% 下创建一个目录 tomcat。你可以在如下的链接获取网络容器 Tomcat 版本 5.5.23: http://tomcat.apache.org/download-55.cgi。

在你下载好的文件 apache-tomcat-5.5.23.zip 解压到目录 %EL4ANT_HOME%\tomcat 下之后,该目录下应该有目录 bin。这样你可以通过 EL4Ant 系统开发网络应用软件。

一分钟后开发 Java 软件

打开你的系统终端,输入下面两条命令(在 Linux 下把命令中的“\”改为“/”下同):

复制代码
cd %EL4ANT_HOME%\demo-project
..\ant\bin\ant -f bootstrap.xml

启动 Eclipse 工具,然后点击菜单,按照下面给定的方法可以把所有模块 helloworld 下的 Eclipse 项目一次性导入到 Eclipse,进行软件开发等工作。注意所有项目的关联性也在 Eclispe 工具中体现出来了。

复制代码
File
Import...
—General
—Existing Project into Workspace—Next
—Browse...
—%EL4ANT_HOME%\demo-project\helloworld(找到该目录)
—Ok
—Finish

再执行一条命令,你就可以打开你的浏览器 ( http://localhost:8080/helloworld/ ) 访问我们的网络软件

..\ant\bin\ant compile deploy.war.module.eu.helloworldweb最后我们给出两条有用的命令,其中第二条命令输出结果,你可以看到由 EL4Ant 系统所生成的所有构建命令如这里的链接图

复制代码
..\ant\bin\ant -h
..\ant\bin\ant -p

后记

下次我们有机会再深入探讨如何从模板出发创建一个类似于 demo-project 实例工程及其模块和 Eclipse 项目。

从上面你可以了解到,EL4Ant 系统体现了习惯优于配置(COC,Convention over Configuration),提高软件编程的乐趣和生产效率。EL4Ant 系统要集成开发工具、系统和第三方软件包也是很简单的。我们可以集成许多第三方重要的软件框架,如著名的控制反转 Apache HiveMind 框架和基于 SOAP 的网络服务框架 Codehaus XFire 等,来完成更为复杂的软件开发项目。


作者简介:骆古道,网名 Cnruby,八十年代初毕业于西北工业大学数理力学系,1988 年公派留学德国,从事组合最优化理论研究,从九十年代初期起一直致力于计算机领域软件开发、设计和管理等方面工作,个人博客为“道喜技术日记”。 王德志,八十年代末获得西安交通大学计算机专业硕士学位,多年来一直主要从事计算机系统研究工作,在软件项目管理和领导方面有丰富经验。

2007-04-28 12:42861

评论

发布
暂无评论
发现更多内容

redis过期策略和内存淘汰机制

wjchenge

揭秘神经拟态计算:缘何成为AI界新宠?

最新动态

多线程与线程安全(实例讲解)

YoungZY

Java 多线程 线程安全

Anaconda与虚拟环境

halapano

Python virtualenv Anaconda

你为什么“啃不动”你手中的技术书?

图灵社区

Java Python 算法 HTTP R语言

源码分析 | Mybatis接口没有实现类为什么可以执行增删改查

小傅哥

Java 源码分析 小傅哥 mybatis 编程思维

使用<input>标签实现六个格子验证码输入框

dstweihao

Java vue.js 大前端

Vol.3 人工智能这么热,你必须知道一点儿!

pyfn2030

人工智能

突破困局

Neco.W

感悟 工作 创业心态

一致性算法 Raft 简述

架构精进之路

raft 一致性算法

你的团队是干什么的?

姜戈

团队管理 团队职能

100天从 Python 小白到大神最良心的学习资源!

JackTian

Python GitHub 学习 Python-100-Days Python-Core-50-Courses

Vol.2 谷歌不只有搜索

pyfn2030

谷歌Google

python实现·十大排序算法之计数排序(Counting Sort)

南风以南

Python 排序算法 计数排序

宕机原因千千万,被雷劈了最无奈

田晓旭

ARTS week 2

锈蠢刀

Spring Security 两种资源放行策略,千万别用错了!

江南一点雨

Java spring springboot springsecurity

实现元素等高: Flexbox vs. Grid

寇云

CSS css3

联邦学习与推荐系统

博文视点Broadview

人工智能 大数据 学习 推荐系统

终于,我也到了和Eclipse说再见的时候,难说再见

程序员小跃

Java eclipse IDEA

好的软件工程原则

pydata

你真的会用Mac中的Finder吗

Winann

macos 效率 App Mac

你的团队想做出什么成果?

姜戈

团队管理

Vol.1 Java初探,新手必看!

pyfn2030

编程 新手指南

码农远程办公指北

大伟

健身一周年:持续锻炼带来无法想象的改变

Taylor

学习 职业 专注 健身

管理规划篇

姜戈

团队管理 团队组织

Gartner 【RPA市场竞争格局】:中国厂商首次进入国际视野

人称T客

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十)在项目中准备测试环境

编程道与术

Java 编程 软件测试 TDD 单元测试

Android原生人脸识别Camera2+FaceDetector 快速实现人脸跟踪

sar

如何用一台电脑制作一部动画短片?

zhoo299

动画 CG

企业级Java软件构建系统EL4Ant_Java_骆古道_InfoQ精选文章