Archiva 有两种类型的仓库配置: managed repository 和 remote repository。
+ managed repository
位于运行 Archiva 服务器的本地仓库。它可以作为一个代理仓库,内部部署仓库或者本地镜像仓库。
Managed repostitory 的字段:
identifier – 仓库的ID,必须是唯一的。
name – 仓库的名字。
directory – 仓库的位置。如果指定的路径不存在, 将由archiva创建一个。
index directory – Archiva 生成的索引存放的位置。如果没有指定,索引目录(.indexer)将在仓库的根目录创建。
type – 仓库的布局(maven2 或者 maven 1)
cron – 执行仓库扫描的cron计划
repository purge by days older – 仓库净化的第一个选项。根据天数来净化。值为0,则不使用。最大值为1000。
repostiory purge by retention count – 仓库净化的第二个选项。根据保留数量净化。保留指定数量的snapshots。
releases included – 指定仓库中是否含有 released artifacts。
block re-deployment of released artifacts – 当released artifact存在时,是否允许覆盖。仅仅影响非snapshot的部署。
snapshots-included – 指定仓库中是否保存snapshots。
scannable – 指定仓库是否能被扫描,表示它是个本地仓库,能被索引,浏览,净化等等。
delete released snapshots – 在仓库净化时,是否删除有 released 对应的snapshot。
每一个仓库都有自己的Webdav URL,用户可以通过浏览器访问仓库。URL的格式如下:
http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/archiva/repository/releases).
POM 的 <distributionManagement>段可以被复制和粘贴到一个项目的pom,这个项目可以发布到指定的managed repository。 从另一个方面来讲,在构建项目时,<repository> 段可以复制和粘贴到一个项目的pom或者Maven的setting.xml,告诉 Maven 从 managed repository 那里或者 artifacts。
+ remote repository
远程仓库,就是位于远程的仓库。这些仓库通常是代理仓库。参考 Proxy Connectors 看看如何代理一个仓库。
远程仓库字段:
identifier – 远程仓库的ID
name – 远程仓库的名字
url 远程仓库的URL。也可以使用 file:// 格式的URL来代理一个本地的仓库。注意如果本地仓库是一个archiva的managed repository,并且拥有一些 proxies connectors ,这些连接器将不会被触发。
username – 访问远程仓库的用户名(如果需要认证)
password – 访问远程仓库的密码(如果认证需要)
type – 远程仓库的布局(maven 2 或者 maven 1)
+ 扫描一个仓库
可以按计划扫描仓库,或者可以在repositories页面点击 “Scan Repository Now“来明确执行。
缺省只处理新(最后一次扫描为准)的artifacts。可以指定执行扫描全部artifacts。
对于scanner发现的每一个artifact,由不同的consumers处理,这些consumers包括 indexing, reository purge 和 database update。
+ 仓库净化
按天数净化
按保留数量净化
可以通过配置,当有released时,删除snapshot
+ 扫描一个数据库
跟仓库扫描一样,可以按计划或者明确执行。在“数据库”页面配置,”Database – Unprocessed Artifacts Scanning’ 段。
在扫描完仓库后,扫描数据库是必须的,artifacts的pom信息将被consumers轮番处理后,增加到数据库。