CreateArtTechnology / Blog

  • 背景maven deploy的过程中Archiva一直响应没有权限,于是想起来Archiva系统有个比较怪的点——默认是需要定期修改密码的。一旦之前设置的密码过期,就必须通过“忘记密码”流程修改,而这个流程需要发送邮件,不过可能这个邮件发送有什么问题,一直收不到。于是乎就必须走重新创建用户的流程,即删除Archiva的用户信息目录后重启。我的用户目录在/usr/local/data/databases/users。查阅资料后,发现可以在Archiva的WebUI中User Runtime Configuration-Properties第三页-security.policy.password.expiration.enabled选项设置为false关闭密码过期策略。
    惨痛的掉坑过程原以为关闭过期策略就万事大吉,没想到后续的这一系列操作直接把CI/CD流程整瘫痪了:
    删除用户目录并重启,在WebUI关闭了密码过期策略部署博客服务后服务启动失败,仅瞟了一眼日志就误以为内存不够用了ps.这里特别说明一下,服务器内存比较小(穷),在扩容内存之前是经常不够用的,于是惯性思维,认为确实内存不够用了。而后来定位到真正的原因是服务器maven package过程中jar未更新。把Archiva所使用的Tomcat关闭,释放内存资源服务仍然启动失败,发现原来是jar有问题,于是尝试修复jar中的问题(当然,实际上是jar未更新)需要部署jar,因此又启动Archiva,这时Archiva启动不了,报错
    至此,整个状态是:博客服务由于依赖问题无法启动;Archiva服务无法启动;Jenkins正常但由于Archiva瘫痪无法打包发布。
    Archiva报错内容核心错误日志:
    ... # 服务无法启动
    ......


  • Archiva集成
     4     2018-10-12 21:02:19

    集成Maven部署服务端增加Archiva用户在Archiva的webUI的Manage选项增加用户,该用户需要有Repository Manager权限客户端修改Maven配置文件settings.xml仅列出了文件的部分内容
    <servers>
    <server>
    <id>archiva.internal</id>
    <username>前一步设置的用户名</username>
    <password>前一步设置的密码</password>
    ......

  • Archiva部署
     4     2018-10-12 20:52:42

    部署Archiva官网说得很详细,这里简述一下2.2.3版本的安装过程,更多内容参考官方说明文档。https://archiva.apache.org/docs/2.2.3/quick-start.html
    #下载
    wget http://apache.claz.org/archiva/2.2.3/binaries/apache-archiva-2.2.3-bin.zip
    #解压
    unzip apache-archiva-2.2.3-bin.zip
    #增加软链
    ......

  • Archiva介绍
     6     2018-10-12 20:52:15

    Archiva
    Archiva是什么Archiva是由Apache提供的Maven私人服务器,用于为Maven构建工程时提供仓库服务。
    Archiva的同类产品比较出名的是Sonatype Nexus,GitHub有人给出了几大类Maven服务器的主要差别。https://binary-repositories-comparison.github.io/在用户角度来看,其实差不了太多,不过我对Apache天生有好感,Archiva配置也是非常简单。而且很多公司已经在使用Nexus了,Archiva文档较少,那么就来试试水。
    为什么使用Archiva应该说为什么使用Maven私服。主要原因是这几点:
    生产环境大多数工程依赖的jar包是一样的,甚至版本基本也一样,私服可以很好地起到缓存作用,减少带宽消耗,加速依赖下载过程生产环境可能是内网环境,发布系统Maven打包时无法连接Maven中央仓库可以控制仓库中的jar包版本,从而控制代码依赖的版本可以上传自己的工具jar包,利于解耦和代码复用
    Archiva官网https://archiva.apache.org/index.cgi
    ......