Maven实战指南 07
来源:互联网 发布:腾讯软件 编辑:程序博客网 时间:2024/06/16 21:08
第六章企业级Web应用的套路
6.1 企业web应用套路简介
通过前面的研究,咱们算是能自己独立基于Maven+Eclipse开发JSP/Servlet的Web应用了,但是在企业中,还是会遇到同咱们自己学习中不一样的情况。比如需要使用框架开发;一个项目需要分成多个模块开发,最后合并集成;新项目重用以前搭建好的框架;开发的时候,要减少对外网的依赖(我们一起的开发,都必须时刻同外网连通的)等等。
接下来我们还是以用户CRUD为例子,分别使用Struts+Spring+Hibernate框架和SpringMVC+Spring+MyBatis框架进行实现。
其中包括:
1、Maven私服搭建和使用
2、Maven的聚合管理
3、Maven的继承
4、以及SSH、SSM两大流行框架的搭建
6.2 搭建Maven私服
在我们以前的案例开发过程中,强烈要求同外网保存连接,为什么呢?
因为一旦我们需要的依赖,在本地环境中没有存在的化,maven会很聪明的,自动到网上的资源仓库中查找,并且下载(有些它自动下载最新版本,有的需要我们在pom.xml中指定坐标,maven根据坐标去查找下载)。
当我们是一个个体去开发的时候,这是允许的,但是如果我们是一个团队,特别是有历史的团队,开发过很多项目的团队。这样的团队,因为历史悠久,肯定在以前项目中用到了很多构件,这些构件也肯定下载过。如果每次下载都没有保存,或至少保存到每个程序员的本地电脑里面,那就意味着团队中的每个程序员都需要时刻连接外部资源仓库,下载自己的构件资源。全世界那么多程序员,想象一下资源仓库服务器的压力,是不是好大呢。另外网络稳定、速度也快还好说,如果不稳定,很慢,下载一个1M的构件,都要十几分钟,请问程序员怎么开发?太不顺畅了吧。
基于这种情况,我们需要在公司里面搭建一个服务器,程序员需要构件的时候,先看本地有没有,没有,找公司服务器要,公司服务器再没有,再从外网下载。下载后,在公司服务器保存,再自动在程序员本地电脑保存。这样就可以在公司内网,重复使用下载下来的构件,从而减少对外网的依赖。
另外因为是内网,肯定要比外网要稳定快速得多吧。如果贵公司内网比外网还要慢,那麻烦请我这菜鸟去帮你吧 ^_^
目前常用的搭建Maven私服的服务器有三个:
Apache基金会的Archiva、JFrog的Artifactory和Sonatype的Nexus。作为咱们这刚入门的求学者,就不要太考虑它们有啥子区别,琢磨着选哪个最好了。直接是能用,开源免费就OK,所以接下来咱们一起研究Apache基金会的Archive服务器的搭建。
1、下载Archiva
下载连接是:http://archiva.apache.org/download.cgi
目前最新版本是2.2.1的,有三种内容下载:一个是tar.gz,一个是war包,还有一个是source源代码。
我这下载的是tar.gz包:apache-archiva-2.2.1-bin.tar.gz。
该版本里面包含自己的web服务器,直接解压,独立web服务器启动。
2、解压Archiva,启动服务器
用压缩工具解压压缩文件,目录结果如下:
bin目录下有个archiva.bat文件,该文件是在win操作系统下的服务启动程序。
安装配置好JDK(1.7以上)
打开cmd窗口,切换到archiva.bat所在的目录,输入archiva console命令回车,启动Archiva服务器。如图:
最后显示当前的Web请求端口是8080
3、初始化和配置Archiva服务器
1)初始化管理员用户
在浏览器中输入 http://localhost:8080,打开页面如下:
点击右上角的 Create Admin User的红色按钮,在显示的页面上输入管理员的用户名和密码,点保存创建。如图:
2)添加其它用户
选择页面左边的Manage,点击Add,在输入框中输入要添加的用户信息,如图:
点击 Save按钮,创建一个新的用户。
根据项目团队的需要,可以给每个开发人员创建访问私服的用户名和密码。
3)配置本地仓库位置
选择页面左边 Repositories菜单,页面会显示本地仓库和远程仓库的配置,如图:
点击图上的Add,我们可以添加一个本地仓库位置,具体填写的信息,参考已有的配置就行,当然,咱们也可以修改现在有的,比如id为internal的本地仓库,点击Edit图标,会显示如下界面:
其它都没什么太重要,主要是id和Directory。
Id在开发人员客户端进行配置的时候,需要使用
Directory是仓库保存构件的路径。
4)添加远程仓库
Archiva装好后,有个默认的远程仓库,连接是:
https://repo.maven.apache.org/maven2
我们当然可以去发现其它的远程仓库,配置到咱们的私服里面来。需要的时候,Archiva自动会从这些私服中找需要的构件。
比如我们现在配置一个阿里云的远程仓库:
点击当前页面中,Remote Repositories Management中Add按钮,输入阿里云仓库的信息如图:
后面当然还有很几个输入框,这里就截取了关键信息。
Id随便输入,输入后不能再修改的,需要唯一
Name是名称,随意
Url是远程仓库的连接,这就不能随意了 哈哈
Usernam和password是连接url远程仓库的用户名和密码,有些仓库提供公共的共享访问,比如我们现在配置的,它就不需要输入,否则就得获得用户名和密码许可才行。
点击 Save后,出现如下界面,表示OK
其中就有我们刚刚添加上去的alimaven。
5)
4、在开发员端配置对私服的使用
在本地用户目录下的.m2目录下,找到settings.xml,我电脑上目录是C:\Users\Noble\.m2\settings.xml。如果您电脑是第一次使用,可能没有settings.xml文件,不过没什么,还记得apache-maven-3.3.9的安装目录不,里面有个conf/settings.xml,把这文件copy到用户的.m2目录下就行。
解析来咱们就按步骤,在settings.xml中完成开发员电脑同私服连接的配置。
第一步:配置同服务器的认证信息
根据前面对私服的搭建,咱们应该可以得出结论,私服就是web服务器,里面提供了构件资源,我们可以通过web访问下载下来。既然要连接web服务器访问,而且我们前面好像有对web服务器设置用户吧^_^,所以第一步,是不是应该在我们的本地,配置能访问Web服务器的认证信息(用户名和密码)呢?!
对,就是配置认证信息。
在settings.xml文件中,找到servers标签,在里面添加一个server的认证信息配置,格式如下:
<server>
<id>archivaServer</id>
<username>admin</username>
<password>admin123</password>
</server>
说明:
Id是要认证的服务器名称,因为可以配置多个,它是用来标记服务器的,要唯一
Username和password不用说了吧,就是所谓的用户名和密码,我这里直接是初始化Archiva私服服务器的时候,创建的admin用户和密码。
我们如果要连接多个私服,可以类似的配置多个server,每个server是一个私服的认证信息
第二步:配置要连接的私服服务器信息
前面我们在自己的settings.xml中,配置了连接私服服务器的认证信息,那这认证信息对应哪个私服服务器呢?接下来咱们在settings.xml中配置私服服务器信息。
很简单,直接在settings.xml中找到mirrors标签,在该标签中插入如下内容:
<mirror>
<id>archivaServer</id>
<mirrorOf>*</mirrorOf>
<name>MyOwnRepo2</name>
<url>http://localhost:8080/repository/internal</url>
</mirror>
说明:
Id是私服映射的标记,该标记要同server中id一样。如果连接私服需要认证信息的化,Maven同过id找对应的server,用server的认证信息进行认证。
mirrorOf 指定哪些内容需要通过私服下载,*表示所有构件都需要从私服下载
Name是私服的名称,随意取,方便自己的记忆和理解
Url,指定私服的url,注意格式:http://<私服ip/名称>:<web端口>/repository/<仓库id>
就这么两步辛苦,当咱们需要依赖的时候,就直接可以从搭建的私服中获取了。当然,不能保证私服有现成的,不过不要紧,私服自己会去网络中找到对应的依赖给我们,同时它也会在自己的仓库中有备份保存,以备咱们其它开发人员需要。
第三步:配置本地工程的发布
前面我们可以将私服上的依赖下载到我们本地,进行项目开发了,那我本地的模块开发好了,怎么样把它们打包,以构件的形式,发布到私服上去,让同项目组的组员,能以添加其它构件一样的,添加咱们的构件,进一步开发其他项目或模块的功能呢?
这一步就是解决本地项目打包,在私服上发布成构件的问题。
要完成这样的功能,需要做两个事情:编写配置文件和运行发布命令。
1、编写配置文件
前面两步,咱们都是在settings.xml中进行的配置,这步的配置文件不同了,需要在咱们工程的pom.xml文件中,在project标签内,添加distributionManagement配置,指定要发布的目标地(私服),具体内容如下:
<distributionManagement>
<repository>
<id>archivaServer</id>
<url>http://localhost:8080/repository/internal</url>
</repository>
<snapshotRepository>
<id>archivaServer</id>
<url>http://localhost:8080/repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
说明:
上面的信息,配置了两个仓库url,一个是repository,一个是快照repository。每个respository中,都有一个url。不用过多罗嗦,url就是咱们要发布的私服仓库url,同我们在settings.xml中配置mirror中的url一样。同样,有两个id,这两个id就需要注意了,要同我们在settings.xml中,用server配置的验证信息中的id对应。因为咱们发布无非就是上传文件,上传文件前,需要安全认证的,maven就是通过id,将server中的验证信息发送给私服,私服认证通过了,才允许咱们将本地构件发布上去的。
2、运行发布命令
前面咱们将配置信息都配置好了,怎么运行命令,按配置信息将工程当构件发布到私服上去呢?简单着呢:
在工程上点击右键 Run As-Maven build...,在弹出框的Goal后面,输入deploy,点击Run就行,它们就会自动发布到咱们的私服上去。
版权所有,转载请注入 视频地址http://cyedu.ke.qq.com
- Maven实战指南 07
- Maven实战指南 01
- Maven实战指南 02
- Maven实战指南 03
- Maven实战指南 04
- Maven实战指南 05
- Maven实战指南 06
- Maven实战指南 08
- Maven实战指南 09
- Maven实战指南 10
- 【Maven权威指南】Maven实战篇:定制一个Maven项目
- maven 实战指南:添加本地jar文件到本地仓库
- 【Maven权威指南】Maven实战篇:一个简单的Maven项目
- 【Maven权威指南】Maven实战篇:一个简单的web应用
- maven指南
- Maven指南
- maven指南
- 《Maven实战》
- 浅谈LTE--为什么EPC选择了sctp?
- 详解PHP处理密码的几种方式
- 跑马灯 代码
- 顺序表中的删除和插入
- Android控件之ScrollView用法实例分析
- Maven实战指南 07
- java并发编程 (一) 《基本知识》
- ChatterBot聊天机器人教程01
- nginx 设置重定向 unknown directive "if($host" in
- Qt Command Prompt命令目录
- ZOJ 2750 Idiomatic Phrases Game 最短路(dijkstra)
- 2016 JAVA与Android面试题整理
- Keras-Sequential模型(2)
- ajax函数 ajax技术