在Ubuntu 14.04 系统中的Apache Tomcat上部署Apache Archiva 2.2.1

简介


Apache Archiva是一套可扩展的 Artifact Repository管理系统。它能够与 MavenContinuumANT等构建工具完美结合。 Archiva提供的功能包括:远程 Repository代理,基于角色的安全访问管理, Artifact分发、维护、查询,生成使用报告,提供基于 Web的管理界面等。 本来是 Sonatype Nexus更加方便的,但是可惜最新的版本不支持在 Tomcat中使用了,因此只能转而使用 Apache Archiva

操作步骤


1.下载 Apache Archiva

Apache官方网站下载,下载其中的 War包。如下图: DownloadArchivaHtml 也可以在本站下载. 具体的命令如下:

2.下载 Apache Archiva依赖的Jar包

Apache Archiva需要依赖 derby-10.10.1.1.jar(或更高版本)( org.apache.derby:derby:10.10.1.1), activation-1.1.jar( javax.activation:activation:1.1), mail-1.4.jar( javax.mail:mail:1.4.7).可以在Mvn Repository官网下载。也可以在本站打包下载。 下载完成后,需要放到 Tomcat的安装目录下面的 lib目录下。 具体的命令如下:

3.配置 Apache Archiva

(1)停止 Tomcat,后续的操作是先关闭 Tomcat为前提的。

(2)把下载到的 apache-archiva-2.2.1.war重命名成 archiva.war然后放到 Tomcat安装目录下的 webapps目录下面。

(3)在 Tomcat的配置文件中增加两项 appserver.homeappserver.base,两者都指向相同的目录即可,本例中,都指向了 /data/Archiva这个目录。

在脚本的第一行执行代码中增加如下内容:

注意:不要直接修改 catalina.sh这个文件,原因在于这个文件每次更新都可能会被替换掉,环境变量的设置都应该在 setenv.sh中设置。
注意 catalina.sh这个文件中的如下注释

(4)由于 Apache Archiva 2.2.1BUG,他没有自动创建必须的目录,导致如果这个目录不存在会初始化失败。因此我们需要手动创建这些目录。

(5)在 Tomcat的配置目录下的 Catalina\localhost目录下面创建一个名为 archiva.xml的配置文件.

里面的内容如下:

注意其中的 Context path为数据库相关配置文件所在的路径,包含配置,数据库等等很多文件, url为数据库的具体存储目录,仅仅包含数据库数据。 注意: Ubuntu系统下面 CATALINA_HOME指向 /usr/share/tomcat7,而 CATALINA_BASE指向 /var/lib/tomcat7 (6)启动或者重启 Tomcat,等待几分钟之后,即可成功配置完成。

如下图: ApacheArchivaIndexPage 注意,如果在最后一步发生失败,那么我们需要删除 /data/Archiva这个目录,以及 Tomcat安装目录下面的 webapps\archiva这两个目录,原因是在配置过程中修改了部分文件,如果不删除这几个文件,会导致各种异常。

注意,上图中的" Create Admin User"按钮,当创建用户的时候,貌似用户名是可以不用" admin"的,但是,实际上,管理员的用户名是不变的,不管你输入什么,最后登陆的时候填写的用户名,永远必须是" admin",否则会一直提示用户名或密码不正确。

注意,如果使用 Apache Httpd( Apache 2.x)作为前端代理 Tomcat的情况下部署 Apache Archiva,并且使用 AJPApache JServ Protocol)的方式进行通信,那么在配置 Apache Httpd( Apache 2.x)的配置文件的时候,里面写入的名字必须严格跟Tomcat中部署的名字一致,比如,如果Tomcat配置的时候是 archiva,那么在 Apache Httpd( Apache 2.x)的配置文件中,也必须使用 archiva,不能像其他简单项目一样进行命名重定向。如下:

里面增加的 AJP代理信息如下:

更详细的配置说明,参考 Ubuntu 13.10 Apache 2.2 通过 AJP 整合 Tomcat 7

客户端配置


在客户机上找到 .m2所在的目录,找到 settings.xml这个配置文件,如果不存在,则手工创建,里面的默认内容如下:

在其中的 mirrors中间增加如下内容:

修改后的内容变成如下样子:

目前使用的时候,发现,在 Apache Archiva刚刚配置完成后,是没办法进行访问的,这个时候一切都返回 404,等服务器启动几个小时之后,从中央服务器同步完成数据了,就可以进行访问了,这个问题纠结了好久,最后发现只要等待就可以了,不知道是不是一个通病。
另外就是,在 Apache Archiva的搜索页面中使用 Search,如果是第一次使用,会发现搜索任何包都提示找不到,原因是因为在设计的时候,只搜索本地已经下载过的包,而在中央仓库中的包是不搜索的,因此会一直提示找不到任何包,只要有任何的客户端调用过,那么就可以在搜索页中找到了,这个问题不必纠结。

引用链接


发布者

默默

默默码农

发表评论

电子邮件地址不会被公开。 必填项已用*标注