精品仓库管理设置Maven组件库仓库.docx

上传人:b****0 文档编号:17577390 上传时间:2023-07-26 格式:DOCX 页数:16 大小:78.08KB
下载 相关 举报
精品仓库管理设置Maven组件库仓库.docx_第1页
第1页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第2页
第2页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第3页
第3页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第4页
第4页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第5页
第5页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第6页
第6页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第7页
第7页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第8页
第8页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第9页
第9页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第10页
第10页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第11页
第11页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第12页
第12页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第13页
第13页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第14页
第14页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第15页
第15页 / 共16页
精品仓库管理设置Maven组件库仓库.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

精品仓库管理设置Maven组件库仓库.docx

《精品仓库管理设置Maven组件库仓库.docx》由会员分享,可在线阅读,更多相关《精品仓库管理设置Maven组件库仓库.docx(16页珍藏版)》请在冰点文库上搜索。

精品仓库管理设置Maven组件库仓库.docx

精品仓库管理设置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:

///

●Artifactory-http:

///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:

///sites/artifactory/latest/下载和安装,当前最新版本是1.2.1-rc1,Artifactory是一个可以被安装到Tomcat中去的Web应用程序

●JDK1.6–更多信息请参阅http:

///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中部署

部署‘/webapp’目录中的war文件到‘/webapps’目录中,在jdk1.6和Tomcat6环境下不需要改变tomcat的配置,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上的构件的缓存。

设置这三个仓库,需要修改/etc/artifactory.config.xml’中的配置:

xsi="http:

///2001/XMLSchema-instance"

xmlns="http:

//artifactory.jfrog.org/xsd/1.0.0"

xsi:

schemaLocation="http:

//artifactory.jfrog.org/xsd/1.0.0

http:

///xsd/artifactory-v1_0_0.xsd">

--Backupevery12hours-->

--00/12**?

-->

private-internal-repository

Privateinternalrepository

true

true

3rd-party

3rdpartyjarsaddedmanually

true

false

ibiblio

true

false

org/artifactory/**,org/jfrog/**

http:

//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文件必须被修改以使用新的仓库:

dev

C:

/InstalledPrograms/apache-tomcat-5.5.20

central

http:

//localhost:

8080/artifactory/repo

false

snapshots

http:

//localhost:

8080/artifactory/repo

false

central

http:

//localhost:

8080/artifactory/repo

false

snapshots

http:

//localhost:

8080/artifactory/repo

false

7.2使用pom.xml配置Maven

也可以在项目的pom.xml文件中设置仓库,下面是pom.xml范例文件:

//maven.apache.org/POM/4.0.0"

xmlns:

xsi="http:

///2001/XMLSchema-instance"

xsi:

schemaLocation="http:

//maven.apache.org/POM/4.0.0

http:

//maven.apache.org/maven-v4_0_0.xsd">

4.0.0

test

test

jar

1.0-SNAPSHOT

test

http:

//maven.apache.org

central

http:

//localhost:

8080/artifactory/repo

false

snapshots

http:

//localhost:

8080/artifactory/repo

false

central

http:

//localhost:

8080/artifactory/repo

false

snapshots

http:

//localhost:

8080/artifactory/repo

false

junit

junit

3.8.1

test

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中添加一条额外的配置:

organisation-internal

admin

password

安装构件到内部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备份构件仓库

备份策略在/etc/artifactory.config.xml中指定,使用cron表达式来指定定时备份任务,配置备份任务的元素在下面的代码清单中用高亮显示出来了

xsi="http:

///2001/XMLSchema-instance"

xmlns="http:

//artifactory.jfrog.org/xsd/1.0.0"

xsi:

schemaLocation="http:

//artifactory.jfrog.org/xsd/1.0.0

http:

///xsd/artifactory-v1_0_0.xsd">

--Backupevery12hours-->

00/12**?

private-internal-repository

Privateinternalrepository

true

true

3rd-party

3rdpartyjarsaddedmanually

true

false

ibiblio

true

f

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2