仓库管理设置Maven组件库仓库.docx
- 文档编号:26807165
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:20
- 大小:395.65KB
仓库管理设置Maven组件库仓库.docx
《仓库管理设置Maven组件库仓库.docx》由会员分享,可在线阅读,更多相关《仓库管理设置Maven组件库仓库.docx(20页珍藏版)》请在冰豆网上搜索。
仓库管理设置Maven组件库仓库
(仓库管理)设置Maven组件库仓库
设置Maven仓库
1.介绍
Maven是Java开发者中流行的构建工具,Maven的好处之一是可以帮助减少构建应用程序时所依赖的软件构件的副本,Maven建议的方法是将所有软件构件存储于一个叫做repository的远程仓库中。
Maven会从ibiblio.org中的公用仓库中同步构件,这个公用仓库下载缓慢、不稳定,并且不包含一些构件的最新版本,而且不能上传团队私有的构件。
通过设置内部Maven仓库,团队可以更有好地利用Maven仓库的优势并且克服使用ibiblio上的仓库时的缺点。
本文着眼于Maven仓库工具应提供的一些功能,列出了选择Maven仓库工具的标准,说明了使用Artifactory设置Maven仓库的相关步骤。
在Linux和Windows中设置Maven仓库的过程是相同的,少数不同点在文中已经用高亮显示,本文列出了与这个Maven仓库的使用有关的POM文件的范例,用截图来向用户阐述如何设置Maven仓库,Maven和artifactory配置范例也有列出。
1.1背景知识
本文假定读者熟悉以下的概念和技术:
●Maven2
●J2EEweb服务器部署过程(e.g.在Tomcat中部署Web应用程序)
●XML
1.2Maven仓库的目的
Maven仓库的目的是作为团队内所使用的所有软件构件的内部私有构件仓库,将Maven构件(jar和pom)存储到一个专门的Maven仓库比将它们存储到版本控制系统中更有优势,这是因为:
●构件(jar)是二进制文件,不属于版本控制系统,版本控制系统在处理文本文件方面比较好
●保持较小的版本控制数据库
●Checkout、update和其他版本控制的操作可以更快
1.3建立内部私有仓库的优势:
●减少可能的版本冲突
●减少首次构建时需要的手动干涉
●中央仓库包含所有依赖的软件构件,引用单一的中央仓库比引用多个独立的本地库要好
●使用内部仓库做clean构建时会快些,因为Maven构件是从内部服务器而不是从因特网上的ibiblio服务器获取。
1.4Maven构件库的类型
●本地仓库——位于开发者的机器,由开发者维护,它从位于‘~home/.m2’目录的‘settings.xml’文件中定义的Maven仓库上同步,如果在pom.xml或setting.xml文件中没有设置内部私有远程仓库,那么开发者机器上的这个本地仓库就会从ibiblio.org上的公用Maven仓库上同步。
●内部私有远程仓库——这是我们将要设置的仓库,我们将改变maven的pom.xml或settings.xml文件来使用这个库。
●外部公用远程仓库——这是在ibiblio.org上的外部公用仓库,默认情况下,Maven从这个仓库上同步。
●
2.Maven仓库概览
2.1没有Maven仓库下的开发环境
2.2具有团队内部远程仓库的开发环境
3.本教程Maven仓库的用例介绍
●在内部仓库中创建2个子库
●Ibiblio缓存‘Ibiblio-cache’——用于存储从ibiblio.org中下载的构件,可以公开访问,它将从外部的ibiblio仓库中同步
●内部仓库internal-maven-repository——用于存储团队内部的构件,它不与任何外部仓库同步,是团队专有的构件库
●可以创建另一个子仓库,这是可选的,用于存储那些公用的但是在ibiblio上暂时没有的构件,例如一些构件的新最版本,这个仓库不与内部仓库同步。
我们可以称它为第三方‘3rd-party’
●浏览远程库,最好是通过一个web浏览器
●在仓库中搜索构件
●从版本控制系统中下载代码,修改settings.xml指向内部仓库并且做一次没有任何手工干涉的clean构建
●向仓库中安装一个构件的新版本
●向仓库中大批导入构件
●从仓库中大批导出构件
●手动备份仓库,设置定时自动备份任务
4.Maven仓库工具的选择标准
理想的Maven仓库工具应该:
●开放源码并且免费
●提供管理工具
●提供仓库浏览器——最好是web浏览器而不是桌面应用程序
●可以部署到标准web服务器中——例如Apache或Tomcat
●创建、编辑、删除子库的能力
●批量导入/导出的工具,用来向构件库或从构件库移动构件
●访问控制工具和匿名只读访问
●安装和使用简单
●备份功能
●问题追踪,论坛或其他独立的信息来源
●活跃的社区/开发者,这样产品才能改进,bug才能修正
5.不同Maven仓库工具的比较
一些流行且免费的Maven仓库工具有:
●标准Maven代理codehaus——http:
//maven-proxy.codehaus.org/
●DeadsimpleMavenProxy(DSMP)-http:
//www.pdark.de/dsmp/
●Proximity-http:
//proximity.abstracthorizon.org/
●Artifactory-http:
//www.jfrog.org/sites/artifactory/latest/
下面列出了一个比较:
codehaus
DSMP
Proximity
Artifactory
管理工具
否
基本
是
是
构件库浏览器
基本
否
是
是
部署到标准Web服务器
是,但不可配置
否
是
是(与Jetty绑定,支持Tomcat)
子库管理
是
是
是
是
批量导入/导出构件
否
否
否
是
安装使用简单
是
是(从代码构建)
是
是(AJAX界面)
备份功能
否
否
否
是(使用quartz和cron表达式)
问题追踪
JIRA,IRC
否
WikiissuesTracker
JiraissuesTracker(良好的在线文档)
研究过以上所有产品之后得出结论,Artifactory拥有我们要的所有标准。
Proximity看样子也有许多我们要的特性,我们将着眼于Artifactory的使用。
关于Artifactory的其他方面:
●符合我们的需求
●Apache2.0许可
●运行于JDK1.6和Tomcat6。
Artifactory以‘war’文件形式部署到Tomcat
●使用Derby数据库来存储构件,数据以一个已发布的知名的格式存储
●所有构件可以被批量导出到本地库然后导入到其他库,因而易于将构件从一个仓库工具移到另一个,它也使得Maven库的升级非常容易
●兼容JavaContentRepository标准(JSR-170)。
●使用Lucene作为搜索引擎,仓库可以被索引和重新索引
●Ajax界面
●易于定制界面
●使用JIRA作为问题追踪系统
6.设置Maven仓库
6.1软件需求
●Artifactory——从http:
//www.jfrog.org/sites/artifactory/latest/下载和安装,当前最新版本是1.2.1-rc1,Artifactory是一个可以被安装到Tomcat中去的Web应用程序
●JDK1.6–更多信息请参阅http:
//www.jfrog.org/sites/artifactory/latest/install.html
●Tomcat6
6.2目录结构
下载和解压artifactory。
目录结构如下:
这些目录是:
●backup——仓库的备份,可以使用cron表达式设置备份策略,quartz定时调度程序在指定的时间里运行备份任务,备份时间间隔在‘ARTIFACTORY_INSTALLATION_FOLDER>/etc/artifactory.config.xml’文件中指定
●bin——内置jetty服务器的运行批处理文件
●data——包含derby数据库文件,如果你想以一个空的构件库开始,可以删除这个目录中的所有内容,在全新的artifactory安装中,这个目录是空的。
●etc——artifactory的配置文件,有‘artifactory.config.xml’、‘jetty.xml‘和‘log4j.,properties’
●lib——包含所有依赖的jar文件
●logs——日志文件
●webapps——包含war文件,它可以被拷贝到Tomcat中安装。
6.2在Tomcat6中部署
部署‘
当这个Web应用程序被部署的时候,需要这些信息:
●保存构件的数据库的位置
●artifactory的xml配置文件的位置
●备份目录的位置
可以在一个配置文件中指定所有3个信息,在Tomcat启动期间我们只需要指定artifactory的安装目录,artifactory会计算出其余的信息。
可选的方法是使用jdbc设置好derby数据库的连接并且在Web应用程序中配置好artifactory(通过在Web应用程序中包含artifactory.config.xml文件)。
不管怎样,这个方法是简单的。
artifactory安装目录的位置可以被设置为一个环境变量,在Linux中,用‘.bash’来输出artifactory安装目录的位置的脚本是:
exportJAVA_OPTS=-Dartifactory.home=/home/amangat/artifactory-1.2.1-rc1
在Windows中,可以添加到Tomcat启动选项中:
6.3设置Maven仓库
建议的方法是在我们的Maven仓库中创建3个库(或子库),它们是:
●内部私有仓库private-internal-repository:
这个仓库包含仅在团队内使用的构件,它们由开发者手动上传,这个仓库不与ibiblio中的远程仓库同步,因为这个仓库(或子仓库)中的构件是团队私有的。
●第三方库3rd-party:
这个仓库包含公有的但不在ibiblio服务器上的构件,例如,最新版本的尚不在ibiblio的组件或jdbc驱动。
这个仓库不与ibiblio同步,因为ibiblio没有这些jar。
●Ibiblio缓存Ibiblio-cache:
这个仓库与ibiblio仓库同步,它是ibiblio上的构件的缓存。
设置这三个仓库,需要修改
xsi="http: //www.w3.org/2001/XMLSchema-instance" xmlns="http: //artifactory.jfrog.org/xsd/1.0.0" xsi: schemaLocation="http: //artifactory.jfrog.org/xsd/1.0.0 http: //www.jfrog.org/xsd/artifactory-v1_0_0.xsd"> --Backupevery12hours--> -- --> //repo1.maven.org/maven2 启动Tomcat并且输入http: //localhost: 8080/artifactor 下面是artifactory的首页面: 以用户名admin和密码password登录,点击浏览仓库的链接,你可以查看仓库的内容。 7.配置Maven以使用新的仓库 7.1配置Maven的settings.xml文件 Maven使用位于‘~/.m2/settings.xml’目录的settings.xml文件来获取Maven仓库,如果没有在该文件中指定仓库,Maven默认使用ibiblio.org上的仓库,settings.xml文件必须被修改以使用新的仓库: /InstalledPrograms/apache-tomcat-5.5.20 //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo 7.2使用pom.xml配置Maven 也可以在项目的pom.xml文件中设置仓库,下面是pom.xml范例文件: //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.0 http: //maven.apache.org/maven-v4_0_0.xsd"> //maven.apache.org //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo //localhost: 8080/artifactory/repo 7.3使用Maven构件仓库构建项目 在构建Maven项目的时候,所有的构件库都会从新的仓库下载,控件台会显示下载的过程: 用浏览器登录到新的构件仓库,你会发现artifactory已经下载并缓存了ibiblio上的构件。 7.4安装构件到构件仓库 可以通过Web界面或Maven命令行安装构件,通过Web界面来安装更简单更快,并且不需要修改任何配置。 通过命令行安装需要修改settings.xml配置文件,可以在其他脚本中使用。 7.4.1通过Web界面安装构件 安装步骤如下: 1.上传要部署的构件(‘jar’文件或‘pom’文件) 2.如果你上传的是jar文件,Artifactory会为它创建pom文件。 上传的时候你可以指定上传到哪个仓库。 3.上传完后,上传的构件与artifactory自动创建的pom文件一起在仓库中出现。 7.4.1能过Maven命令行安装构件 当用‘mvncleaninstall’命令的时候,Maven仅仅打包和安装构件到本地仓库,要把它安装到APH内部仓库中,我们必须在settings.xml中添加一条额外的配置: 安装构件到内部Maven仓库的命令是: mvndeploy: deploy-file-DrepositoryId=organisation-internal-Durl=http: //localhost: 8080/artifactory/private-internal-repository -DgroupId=test-DartifactId=test-Dversion=1.1-Dpackaging=jar-Dfile=target/test-1.1.jar repositoryId必须与settings.xml中定义的服务器ID相匹配,url必须包含构件将要被安装到的仓库的名称。 新的构件会在仓库中出现,并且artifactory会自动为我们创建pom文件。 8.Artifactory的其他特性 8.1备份构件仓库 备份策略在 xsi="http: //www.w3.org/2001/XMLSchema-instance" xmlns="http: //artifactory.jfrog.org/xsd/1.0.0" xsi: schemaLocation="http: //artifactory.jfrog.org/xsd/1.0.0 http: //www.jfrog.org/xsd/artifactory-v1_0_0.xsd"> --Backupevery12hours-->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 设置 Maven 组件