一、私服及Archiva简介
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
Apache Archiva是一套可扩展的Artifact Repository管理系统。它能够与Maven,Continuum和ANT等构建工具完美结合。Archiva提供的功能包括:远程Repository代理,基于角色的安全访问管理,Artifact分发、维护、查询,生成使用报告,提供基于Web的管理界面等。
二、安装系统要求
- 要求JDK版本1.8以上;
- 磁盘空间没有要求,软件本身只有几十M,私服仓库根据自己开发下载的包相关,个人建议预留100G以上;
- 支持的操作系统有linux、Mac OS、window等。
三、archiva安装步骤
1、首先安装jdk
参照博文安装JDK
https://blog.csdn.net/carefree2005/article/details/111314687
2、登录官网下载程序软件包
打开官网下载软件包,官网地址http://archiva.apache.org/download.cgi
#wget https://mirror.bit.edu.cn/apache/archiva/2.2.5/binaries/apache-archiva-2.2.5-bin.tar.gz
当前最新版本apache-archiva-2.2.5,下载单机版即可。
3、解压安装包
#tar -zxvf apache-archiva-2.2.5-bin.tar.gz
创建软连接,方便以后升级和日常管理
#ln -s apache-archiva-2.2.5 archiva
4、修改配置文件
#cd archiva/
#vim conf/jetty.xml
默认服务端口8080,可以根据自定需要自行修改
5、启动archiva服务
[root@test1 archiva]# ./bin/archiva start
Starting Apache Archiva…
启动需要十几秒的时间
6、web登录控制台
登录http://ip:8080/
看到如下页面说明安装成功,首次等需要创建admin账户
设置密码和管理员邮箱后保存
7、默认的Repository
登入后,左侧Administration栏列出了所有常用配置。
点击Reposoitory会看到archiva自带的默认internal repository 和 remote repository
internal repository表示Archive本地的repository,remote repository代表远程的repository。
当maven连接到Archiva的internal repository时,Archiva会先从本地寻找目标,找不到的话再从remote repository上继续寻找。
8、常用的配置文件目录
%ARCHIVA_HOME%/data 数据文件根目录
%ARCHIVA_HOME%/data/database 里配置了数据库文件,包括用户数据库和系统数据库
%ARCHIVA_HOME%/data/repositories 包含索引信息。如果上传了jar等文件的话,也会保存在这里。
%ARCHIVA_HOME%/logs 存放log文件。

9、开发者maven配置
#cat conf/settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>\Common\my_repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>archiva-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>archiva-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<!-- 私服地址 start -->
<mirror>
<id>archiva-releases</id>
<mirrorOf>internal</mirrorOf>
<url>http://192.168.0.124:8080/repository/internal</url>
</mirror>
<mirror>
<id>archiva-snapshots</id>
<mirrorOf>snapshots</mirrorOf>
<url>http://192.168.0.124:8080/repository/snapshots</url>
</mirror>
</mirrors>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>internal</id>
<name>Archiva Managed Internal Repository</name>
<url>http://192.168.0.124:8080/repository/internal</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<name>Archiva Managed Snapshots Repository</name>
<url>http://192.168.0.124:8080/repository/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<!-- 私服地址END -->
</settings>
四、QA
1、提示密码过期
解决方案:
将archiva/data/databases 下面的users删除掉,登录后按照第6步重设admin账户。
2、将archiva添加到服务
创建archiva命令的软连接
其中/opt/archiva为软件安装主目录
[root@test1 archiva]# ln -sf /opt/archiva/bin/archiva /etc/init.d/archiva
[root@test1 archiva]# service archiva status
Apache Archiva is running (58438).
[root@test1 archiva]# service archiva stop
Stopping Apache Archiva…
Stopped Apache Archiva.
[root@test1 archiva]# service archiva start
Starting Apache Archiva…