Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.
如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方 法。 Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页
2.核心价值
* 简单
Maven 暴露了一组一致、简介的操作接口,能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用Maven现有的成熟的、稳定的组件也能简 化构建系统的复杂度。
* 交流与反馈
与版本控制系统结合后,多有人都能执行最新的构建并快速得到反馈。此外,自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。
* 测试驱动开发
TDD强调测试先行,所有产品都应该由测试用例覆盖。而测试是maven生命周期的最重要组成部分之一,并且Maven有现成的成熟插件支持业界流行的测试框架,如Junit和TestNG。
* 快速构建
只需要一些配置,之后用一条简单的命令就能让Maven帮你清理、编译、测试、打包、部署,然后得到最终产品。[/size]
* 持续集成
更加方便的持续集成
* 富有信息的工作区
2.主要内容
我将会发表一系列课程来讲解Maven的应用,基于Maven3.0,主要内容如下:
1)安装和配置
2)Maven使用入门
3)坐标和依赖
4)Maven仓库
5) 生命周期和插件
6)聚合与继承
7)使用Nexus创建私服
8)使用Maven进行测试
9)m2eclipse的使用
10)自动部署maven项目
11)使用Hudson进行持续集成
3. 安装好JDK
以JDK1.5以上为例
4. Maven 的下载
下载地址:http://maven.apache.org/download.html
5.Maven安装
将下载到的文件解压到指定目录即可,如:C:\maven\apache-maven-3.0.4
6.环境变量的配置
在系统环境变量中新增如下环境变量
M2_HOME: Maven的安装目录,如:C:\maven\apache-maven-3.0.4
M2: %M2_HOME%\bin
并在path中添加%M2%,这样便可以在任何路径中执行mvn命令
7. 检测安装是否成功
Cmd窗口执行命令:mvn –v
得到如下图所示结果:
8.设置代理
有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问因特网。这时就需要为Maven配置HTTP代理。
在目录~/.m2/setting.xml文件中编辑如下(如果没有该文件,则复制$M2_HOME/conf/setting.xml):
<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>proxy.host.net</host> <port>80</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies>
————————————————————————————————————————
version: jeecg-framework-3.1.0.RELEASE
date: 2012-04-14
————————————————————————————————————————
1、 最大亮点:开放UI标签库源码(让用户更好的把控平台,进行二次开发)
2、 增加查询过滤器、实现组合查询
3、 增加excel等工具类
4、 修复[系统管理]模块的bug
5、 集成报表,采用highchart报表(用户分析模块柱状图、线性图等)
6、 提供数据监测功能
7、 tab采用href和ifram两种模式,提高页面速度并保证具有独立样式的页面能够加载;
8、 抽取V2 spring jdbc方式
9、 对Session失效进行处理
10、 一对多示例程序
11、支持对菜单排序功能
12、通过Hiberate拦截器对添加人、添加时间、修改人、修改时间自动追加,记录数据操作日志
13、提供一套专业的单元测试代码
14、制作学习帮助书籍《JEECG UI标签库帮助文档》《JEECG_v3开发指南》《JEECG_v3系统表设计》
下载地址:http://code.google.com/p/jeecg/d ... &q=#makechanges
首先设定一个基本的讨论背景,如图1。它表现了模型驱动应用所处的典型情景,显示了信息技术(左侧)与业务(右侧)之间的鸿沟,包括它们各自的抽象层级系统(呈现为两个方向相反的金字塔)。模型驱动应用基于人可理解/操作且计算机可处理的中介模型,跨越鸿沟,对业务领域和计算机领域建立连接(参看 Situation for Discussions about MDApps及此文)。本文将主要基于这一背景,对“模型驱动应用”概念进行讨论。近十多年来,我们一直使用类似的词语,包括企业模型驱动应用,模型驱动应用或信息系统等,并没有见到其它相似用法的明确定义[1];在近期发布的论文[2]中,对此做了专门界定。本文建议,模型驱动应用(英文model-driven application, 缩写为MDApp)这一词语,作为专门的术语,主要用于两种含义:一种是指特定的系统类型,另一种指与此类型相关的理念、架构(architecture)、途径或相应的研究领域或知识体;在英文表达中,参照诸如“信息系统”(Information Systems)一词的用法,对后者主要使用复数形式(model-driven applications, MDApps)。
图1:一个讨论模型驱动应用的情境
模型驱动应用系统
根据论文[2]中的定义,模型驱动应用就是一种模型驱动系统,其功能与行为基于或受控于可演变的应用模型,而这些模型的对象就是应用的对象。这个定义是建立在更一般化的概念,即模型驱动系统和模型驱动机制(MDS & MDM)上,它们为模型驱动应用提供了构造性的准则。这一概念的理解涉及三个关键词。
第一个是应用模型(applied model),它定义于模型驱动机制,“应用”意味着该模型作用于应用系统之中,并且其对象(即模型所表达的对象,参见此文)就是用户要通过该系统处理的事物,控制相关的系统系统功能或行为而不是直接对它们建模。
第二个是对象(target),在这双重使用:一是对应着应用模型,一是对应着应用系统,它们指向相同的目标事物;换言之,系统的作用对象就是应用模型表示的对象。例如,一个模型驱动的货仓应用系统,其对象可包括仓位、货品、存货、交货单、交货流程等;那么,这个系统的应用模型就将包括仓位模型、货品模型、存货模型、交货单模型、交货流程模型 [3]。
第三个是应用模型的可演变性(evolutionary),即系统运行于应用模型上,同时应用的用户可以在系统运行中,即运行时(runtime),对应用模型进行添加、修改、清除。这意味着系统能够通过使用者对应用模型的更新而适应(adapt)其应用对象的变化。例如,如果需要系统处理某种单据,就需要在应用模型中创建它的模型;而当我们想要改变它的格式,就必须为它创建新的模型,或者对现有的模型做出修改。
此外,按照TOGAF 9 [4]定义,应用(application)是“支持业务功能与服务的,部署并运行的IT系统”。根据这个定义,模型驱动应用可表述为,部署并基于业务(中的事物)模型运行的IT系统,其应用对象就是业务(中的事物),这些事物的模型就是应用模型。
建立一个模型驱动应用的基本构造已经被识别和提炼出来,这就是模型驱动机制。在此基础上,可以设计和实现各种不同的实际系统。对真实的软件来说,模型驱动机制中的操作装置可能划分成几个不同的模块,例如建模器(建模工具)、模型驱动器(引擎)、作业器(或功能引擎)等。图2显示了这样一个模型驱动应用的初步结构,这样的软件系统,可称为模型驱动应用平台(platform)。
图2:一个基本的模型驱动应用结构(根据[2] Fig. 4.)
在实践中,真实的企业/业务应用平台设计通常比图2复杂得多,并且可能结合其它的架构风格,例如SOA,以及运用许多互相关联的模型驱动机制结构,即多重模型驱动机制。无论如何,模型驱动机制都是决定模型驱动应用关键特征所必需的核心构造。
概括地说,模型驱动应用就是运行于可演变的应用对象模型之上的计算机应用,这种模型称为应用模型。它最重要的特征是对用户的,即其所支持的功能/操作与应用对象事物(业务)的联系建立在这些事物的模型上[5],而这些模型可以由用户在系统运行中更新。这一特征可以概括为“模型即所能”,或参照耳熟能详的短语WYSIWYG,表述为 "what you model is what you handle" (WYMIWYH;要处理什么就对其建模) [6]。客户从软件供应商那里购买的不再是带着所谓“最佳实践”的业务解决方案,而仅仅是业务支撑平台和工具,客户的业务及其独特的需求则反映在属于他们自己的应用模型之中,所以,对具体客户而言,模型就是应用。
值得留意,应用模型的对象事物也可以是系统自身(或其部分),例如用户接口(UI)、外观、配置或结构等等;运行于这种模型之上(即反射,reflection),可能尤为软件架构师或程序员关注,对最终用户,这当然也是极其重要的特性,然而,模型驱动应用最有意义的贡献,无疑是基于系统外(常称为现实世界)事物的模型,而与面向固定业务功能设计的常见应用相比,这个“小小的”差异,会导致整个应用生命周期及生态系统的巨大区别。
模型驱动应用理念在实践中,模型驱动理念具体表现为一种强壮的富架构(architecture),参见MDApps vs. MDA and OO: from an Architectural Perspective,Architecture(架构/体系结构)与营造法式:一个简单的理解等文。由企业应用探索十五年之路线图可窥见,在模型驱动应用背后,有一系列协调一致的原理。 与近几十年流行的观点相比,它实际上反映了一个完全不同的计算机应用“世界观”。这需要更详细的阐述。在论文[2]中(第二章),对此有一个初步的陈述。更多的相关讨论如
- Situation for Discussions about MDApps
- Human, Computer, the Real World, and Inevitable Mediating Model
- Model-Dependent Realism: Is This the Worldview of Software Engineering?
- Three Spaces for Entities and Models of Applications
- Abstraction (III) Make Long Story Short
- 一个模型,从认知架构到信息系统架构及认知结构三角模型及映像、模型与理论概念
- 开放的世界与有限的模型;等等。
这些讨论看起来很零散,但背后有一副完整的图画。
最后,正如TOGAF和图1(