设为首页 - 加入收藏 焦点技术网
热搜:java
当前位置:首页 >

跟我学习maven-maven介绍 Dubbo zookeeper

2016-03-30 09:32:27.0 java  
导读:跟我学习maven-maven介绍 Dubbo zookeeper 欢迎大家前来学习了解jeesz大型分布式企业架构源码,具体咨询请加Q:2137028325 关键字:Maven, Springmvc mybatis shiro Druid Restful,Dubbo ZooKeeper,Redis,FastDFS ,ActiveMQ,Keepalived,Nginx,Hudson,MySQL读写分离。。。

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件 项目管理工具。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。 [1] 

外文名

Maven

本    质

项目对象模型

分    类

java

定    义

项目构建管理

1 特点

那么,Maven 和 Ant 有什么不同呢?在回这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具

Maven是一个 项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个 项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中 插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的 插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

2 常用命令

mvn archetype:create 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvn jetty:run 启动jetty服务

mvn tomcat:run 启动tomcat服务

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

3 推荐书籍

发文时中文版对maven介绍比较全的书籍是《Maven实战》

4 Win7配置

首先要安装Jdk1.6 和 Myeclipse7.5 。

1. Maven有一个重要的文件"settings.xml“,这个文件来源于apache-maven-2.0.8/conf/ 下,要放在window下, Win7和Winxp还是有点不一样 , Win7 ---C:\Users\用户名\.m2 , Winxp ---C:\Documents and Settings\用户名\.m2 。

2. 设置Maven的 环境变量,基本上和设置Jdk环境变量相似,首先设置MAVEN_HOME,再加入Path 。

3. 修改”settings.xml” 文件,在这个文件中找到<localRepository>d:/work</localRepository>这一行,进行修改。这一行代表了Maven的Jar包仓库的位置。work下放的都是项目所用到的jar包,每个Project都可以共用一个work。

4. Myeclipse7.5及以上版本本身自带Maven 插件。如果使用低版本的Myeclipse需要安装插件,在help菜单中选择software updates,选择find and install,选择search for new features to install-选择new remote site。写入 name:maven URL:http:// m2eclipse.codehaus . org/update/去下载相关jar包和插件。

5. 在Myeclipse中windows-perferences中,在下图的位置上,查看users settings的路径是否正确。

6. 建立Maven的project,File--new—other—Java Maven Project。

7. 然后打开project里pom.xml文件,

<projectxmlns=" http://maven.apache.org/POM/4.0.0"xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=" http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>maventest</groupId>

<artifactId>maventest</artifactId>

<packaging>jar</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>MavenQuickStartArchetype</name>

<url> http://maven.apache.org</url>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

在这xml文件中添加Maven所依赖的Jar的名称,也就是添加<dependency></dependency>节点。

例如:添加大家常用的Struts Jar包

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-core</artifactId>

<version>2.0.11</version>

</dependency>

8. 到发文时为止,环境就算搞定了。接下来要应用Maven来打包Project为大家服务的。

在cmd中的命令:

a. mvn eclipse:clean 清除Project中以前的编译的东西,重新再来

b. mvn eclipse:eclipse 开始编译Maven的Project

在Myeclipse中的操作:

a. 选中Maven Project 右击 在Run As中选择Maven clean

b. 在Myeclipse中,Project—Clean 开始编译

c. 选中Maven Project 右击 在Run As中选择Maven install

执行完这几步,如果没发生异常,会在project里生成一个target文件夹,这个文件夹里的东西,就是Maven打包发布的东西。

5 生命周期

Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。

clean(清理)

此生命周期旨在给工程做清理工作,它主要包含以下阶段:

pre-clean - 执行项目清理前所需要的工作。

clean - 清理上一次build项目生成的文件。

post-clean - 执行完成项目清理所需的工作.

default(默认)

validate - 验证项目是否正确且所有必要的信息都可用。

initialize - 初始化构建工作,如:设置参数,创建目录等。

generate-sources - 为包含在编译范围内的代码生成源代码.

process-sources - 处理源代码, 如过滤值.

generate-resources -

process-resources - 复制并处理资源文件,至目标目录,准备打包。

compile - 编译项目中的源代码.

process-classes - 为编译生成的文件做后期工作, 例如做Java类的字节码增强.

generate-test-sources - 为编译内容生成测试源代码.

process-test-sources - 处理测试源代码。

generate-test-resources -

process-test-resources - 复制并处理资源文件,至目标测试目录。

test-compile - 将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试classpath目录中。

process-test-classes -

test - 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

prepare-package -

package - 接受编译好的代码,打包成可发布的格式,如 JAR 。

pre-integration-test -

integration-test - 按需求将发布包部署到运行环境。

post-integration-test -

verify -

install -将包安装到本地仓库,给其他本地引用提供依赖。

deploy -完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。

site(站点)

pre-site - 执行一些生成项目站点前的准备工作。

site - 生成项目站点的文档。

post-site - 执行需完成站点生成的工作,如站点部署的准备工作。

site-deploy - 向制定的web服务器部署站点生成文件。[2] 

Maven生命周期参考:Apache Maven Project[2] ,书籍《Maven In Action》

声明:该框架面向企业的大型互联网分布式企业架构,后期会介绍linux上部署高可用集群项目。有愿意了解框架技术或者源码的朋友直接加Q(2137028325)一起学习

欢迎大家前来学习了解jeesz大型分布式企业架构源码,具体咨询请加Q:2137028325

关键字:Maven, Springmvc mybatis shiro Druid Restful,Dubbo ZooKeeper,Redis,FastDFS ,ActiveMQ,Keepalived,Nginx,Hudson,MySQL读写分离

1.     项目核心代码结构截图
Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化

2.    项目依赖介绍

   2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

       2.2 Dubbo独立服务项目依赖如下图:
Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

3.  项目功能部分截图:

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

Maven <wbr>Springmvc <wbr>mybatis <wbr>shiro <wbr>Druid <wbr>Restful,Dubbo <wbr>ZooKeeper,Redi

4.      平台简介
        Jeesz是一个分布式的框架,提供项目模块化、服务化、热插拔的思想,高度封装安全性的Java EE快速开发平台。

       Jeesz本身集成Dubbo服务管控、Zookeeper注册中心、Redis分布式缓存技术、FastDFS分布式文件系统、ActiveMQ异步消息中间件、Nginx负载均衡等分布式技术

        使用Maven做项目管理,项目模块化,提高项目的易开发性、扩展性

        以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎等。

        前端集成Bootstrap4 metronic框架,UI响应式、扁平化布局,适应所有PC、Pad、Anroid、ios 移动设备等。

       Jeesz主要定位于互联网企业架构,已内置企业信息化系统的基础 功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件、代码生成等。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。

       Jeesz目前包括以下模块项目,后台系统管理系统RestFul独立服务系统Scheduler定时调度系统内容管理(CMS)系统在线办公(OA)系统我的待办(Task服务)我的收藏(Bookmark服务)

        后台管理系统包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;

        RestFul独立提供标准Rest服务API,您可以快速实现自己的业务,提供需要的服务;

        Quartz定时调度系统可以动态配置您的任务规则等;

        内容管理(CMS)系统,包括内容管理,栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;

        在线办公(OA)系统,主要提供简单的流程实例。

       Jeesz提供了常用工具进行封装,包括日志工具、缓存工具、服务 器端验证、数据字典、当前组织机构数据(用户、机构、区域)以及其它常用小工具等。另外 还提供一个强大的在线 代码生成 工具,此工具提供简单的单表、一对多、树结构功能的生成,如果对外观要求不是很高,生成的功能就可以用了。使用了Jeesz基础框架,可以提高快速开发效 率。


5.    内置功能(只列了一部分功能)
    1.用户管理:用户是系统操作者,该功能主要完成系统用户配置。
    2.机构管理:配置系统组织机构(公司、部门、小组),树结构展现,可随意调整上下级。
    3.区域管理:系统城市区域模型,如:国家、省市、地市、区县的维护。
    4.菜单管理:配置系统菜单,操作权限,按钮权限标识等。
    5.角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
    6.字典管理:对系统中经常使用的一些较为固定的数据进行维护,如:是否、男女、类别、级别等。
    7.操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
    8.连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
    9.工作流引擎:实现业务工单流转、在线流程设计器。


6.    开发工具
    1.Eclipse IDE:采用Maven项目管理,模块化。
    2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码如果不需要注意美观程度,生成后即可用。


7.    技术选型(只列了一部分技术)
    1、后端
        服务框架:Dubbo、zookeeper、Rest服务
        缓存:Redis、ehcache
        消息中间件:ActiveMQ
        负载均衡:Nginx
        分布式文件:FastDFS
        数据库连接池:Alibaba Druid 1.0
        核心框架:Spring framework
        安全框架:Apache Shiro 1.2
        视图框架:Spring MVC 4.0
        服务端验证:Hibernate Validator 5.1
        布局框架:SiteMesh 2.4
        工作流引擎:Activiti 5.15
        任务调度:quartz 1.8.5
        持久层框架:MyBatis 3.2
        日志管理:SLF4J 1.7、Log4j
        工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI
    2、前端
        JS框架:JQuery 1.9。
        CSS框架: Bootstrap 4 metronic
        客户端验证:JQuery Validation Plugin。
        富文本:CKEcitor
        文件管理:CKFinder
        动态页签:Jerichotab
        数据表格:jqGrid
        对话框:jQuery jBox
        树结构控件:jQuery zTree
        其他组件:Bootstrap 4 metronic
    3、支持
        服务器中间件:Tomcat 6、7、Jboss 7、WebLogic 10、WebSphere 8
        数据库支持:目前仅提供mysql数据库的支持,但不限于数据库,下个版本升级多数据源切换和数据库读写分离: 如:Oracle、SqlServer、H2等
        支持开发环境:Eclipse、MyEclipse、Ras、Idea等

欢迎大家前来学习了解jeesz大型分布式企业架构源码,具体咨询请加Q:2137028325

关键字:Maven, Springmvc mybatis shiro Druid Restful,Dubbo ZooKeeper,Redis,FastDFS ,ActiveMQ,Keepalived,Nginx,Hudson,MySQL读写分离


(编辑: 程序猿猴子)

网友评论
相关文章