Nexus升级

缘由:自从Juven翻译第十六章Nexus以来,我就发现这一章内容与我原来安装的nexus-webapp-1.0.0-beta-4.2特性有诸多不同,于是尝试升级到nexus-1.0.2-bundle。
但是我按照 http://nexus.sonatype.org/using/ updating.html中的步骤进行迁移后,尝试启动失败了。
意外信息“服务nexus-webapp 意外停止”
我再尝试取消迁移并删除迁移版本,然后直接安装nexus-1.0.2-bundle,也是报同样的错误。
只好作罢,返回继续使用nexus-webapp-1.0.0-beta-4.2。
解决

因为我没有去查看warpper.log,虽然命令行已有提示,有几个warpper.log文件,
\nexus-1.1.0-bundle\nexus-webapp-1.1.0\bin\jsw\windows-x86-32、logs都有。后来
查看logs下的日志才发现问题出在这个 -XX:+HeapDumpOnOutOfMemoryError参数上,因为我的虚拟机上安装
JDK1.5,这个参数存在JDK6的JVM中。
    修改\nexus-1.1.0-bundle\nexus-webapp-1.1.0\conf 下的wrapper.conf文件
    屏蔽 wrapper.java.additional.3=-XX:+HeapDumpOnOutOfMemoryError。
然后在\nexus-1.1.0-bundle\nexus-webapp-1.1.0\bin\jsw\windows-x86-32注册并启动服务。哈哈^^ 大功告成。
    现在开始重新升级,因为我查看了Juven的翻译和启动新的Nexus后发现,它的邮箱和用户管理、权限、角色等等是我感兴趣的新功能,当然还有其他,我没有自己查看,呵呵,等升级完成后再说。

     下面是从Nexus关于迁移这部分中翻译过来的,小弟才疏学浅,翻得不好望大家见谅。
      我的迁移环境从nexus-webapp-1.0.0-beta-4.2到nexus-1.1.0-webapp-bundle。

 

在Nexus betas版本中,主配置文件为${basedir}/runtime/apps/nexus/conf/nexus.xml,它严格指
定了Nexus的工作目录,默认为${basedir}/runtime/work/nexus。这次升级能成功的让用户更友好的使用默认或者手动移动
内部工作目录的数据和相应的配置。
在1.0+, 这变得相当的简单。工作目录存放一个新的的默认路径${basedir}/../sonatype-work/nexus,那样是为了让
它和运行目录处于同一路径下。有两种方法可以覆盖默认工作目录:第一种是为新的工作目录定义一个名称为“PLEXUS_NEXUS_WORK”的环境变量,或者编辑${basedir}/conf/plexus.properties中的nexus-work 变量。第一种方法在已经出现的 1.0beta版本中是首选方法,因为它几乎忽略了手工移动和编辑文件。
nexus.xml 现在存放在${nexus-work}/conf/ 文件夹下。未来你升级到一个新的捆绑包也是非常容易的。如果你没有移动其他文件的话,关掉旧版本,启动新版本即可。

如果你需要升级更早的版本,那么你将需要按下面的一些步骤才能成功的升级到1.0.
下面是默认推荐的文件夹结构:

/Nexus
+--/nexus-1.0.0
    +/runtime/apps/nexus
|
+--/sonatype-work
    +/nexus
       +/storage
       +/conf/nexus.xml

(我因为已经启动过新的版本,这些文件夹都存在)
如果你觉得这样不错,那么你就可以执行下面的步骤了。

   1.创建一个包含工作目录和运行目录的捆绑包文件夹(如果你没有创建的话),暂且称它指向${nexus_home},然后定位到你当前使用的$
{nexus-beta-bundle}版本下。
   2.把${nexus-beta-bundle}/runtime/work/nexus 移动(或者复制[注:推荐,以便升级失败后还原])到
${nexus_home}/sonatype-work/nexus下。
    3.这一步操作你将覆盖${nexus_home}/sonatype-work/nexus/conf 和${nexus_home}/
sonatype-work/nexus/storage等等,不用管它,执行就行了。
   4.移动(或者复制)${nexus-beta-bundle}/runtime/apps/nexus/conf/nexus.xml 到$
{nexus_home}/sonatype-work/nexus/conf
    (这一步作者在误导我,因为我查看了两个nexus.xml 的结构有很大的不同,没办法,我只好一一把旧版本和新版本的相似配置覆盖,并删除了新版本下一个叫secret.properties的用户配置文件[复制过来的旧版本文件],因为有名称为security.xml的新的更高级的用户权限配置文件代替了它,当然以前的用户密码也没有了,都还原成系统默认)
   5.打开你的 ${nexus_home}指向的目录。把目录名称改为nexus-1.1.0-webapp-bundle并指向环境变
量"NEXUS_HOME“。
   6.定位到${nexus_home}/nexus-1.0.0-webapp-bundle/bin/jsw/[你的操作系统版本] ,寻找启
动的脚本。
   7.你现在启动它,你就会发现原有的工作目录数据和迁移后的配置。

[下面的仅翻译,未做实际操作,见谅。]

如果你想为你的工作目录定位其他的路径,请按如下步骤操作。我们现在指向${nexus-beta-bundle}的当前路径。 
    1.为你现有的nexus工作目录定义一个为"PLEXUS_NEXUS_WORK"的环境变量。(它将指向你预先指定的nexus.xml
文件)。
  2.移动(或者复制)${nexus-beta-bundle}/runtime/apps/nexus/conf/nexus.xml  到 ${PLEXUS_NEXUS_WORK}/sonatype-work/nexus/conf
   3.其他步骤同上5,6,7.

 

后记:
    自Nexus 1.1起,我们可以直接使用WAR了,扔在tomcat或者jetty下就可以,现在基本可以使用了,不过还有一些小的问题正在修复,相信1.1.1会比较完善。
有了WAR,升级会变得十分方便,我们可以自定义nexus的工作目录,类似nexus.log, nexus.xml. 以及仓库的存储都在工作目录中,war只包含了所有的应用程序逻辑。因此只要通过web-inf/plexus.properties,或者环境变量,系统属性,配置nexus-work就可以(不配置的话会默认在用户目录下)。也就是说,使用了WAR,升级就基本上只是重新部署一个WAR包而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值