Skip to content
yu jie shui edited this page Aug 3, 2016 · 14 revisions

从源码编译打包

repox暂时没有发布二进制包,只能从源码编译。

$ git clone https://github.com/Centaur/repox.git
$ cd repox/src/main/resources/admin
$ bower install
$ cd ../../../..
$ sbt assembly

上述中的bower依赖于node.js和npm,因此需要先安装node.js。 sbt将会在target/scala-2.11/目录下生成 repox-assembly-$VERSION.jar

运行

$ java -Xmx512m -jar repox-assembly-$VERSION.jar

repox监听所有网络接口上的8078端口。 repox缓存的文件保存在 ~/.repox/storage 目录下,配置数据保存在 ~/.repox/journal 目录下,日志文件是 ~/.repox/repox.log 因此如果要备份数据,只需要备份 ~/.repox 目录即可。

以下假设repox部署在192.168.0.120这台服务器上。

配置

repox使用akka-persistence来保存配置信息(这当然不是必须的,repox用这个场景demo了akka-persistence的用法)。 从浏览器连接 http://192.168.0.120:8078/admin/admin.html 通过web界面对repox进行配置。从这里开始

登录密码

Repox web admin 默认密码为zhimakaimen.

sbt 配置

为了充分发挥repox的优势,在开发者本机上需要做两件事。

  1. 配置 ~/.sbt/repositories 文件(如果文件还未创建过,则创建它),除了本地缓存外,仅使用repox作为仓库。文件内容如下:

     [repositories]
     local
     repox-maven: http://192.168.0.120:8078/
     repox-ivy: http://192.168.0.120:8078/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
    

    请注意,repox-maven 与 repox-ivy 的次序是重要的,请将 repox-maven 写在 repox-ivy 的前面。

  2. 配置sbt,使它仅使用~/.sbt/repositories中的内容。

  • 如果你使用命令行,请在sbt命令行参数中添加 -Dsbt.override.build.repos=true 。例如我的sbt shell脚本的内容是这样的:

      #!/bin/sh
      export SBT_OPTS="-Dsbt.override.build.repos=true"
      exec java -Xmx512M ${SBT_OPTS} -jar $(dirname "$0")/sbt-launch.jar "$@"
    
  • 如果使用jetbrains IDEA,修改 Preferences -> SBT -> JVM Options -> VM parameters,保证它包含

      -Dsbt.override.build.repos=true 
    
  • 如果使用 activator,请打开 ~/.activator/activatorconfig.txt 文件(如果此文件不存在,请创建它。很明显,配置文件满天飞也是 typesafe/sbt team的诸多恶趣味之一),在其中添加一行

      -Dsbt.override.build.repos=true
    
  • windows 用户可以 在 C:\Program Files (x86)\sbt\conf\sbtconfig.txt加入

      -Dsbt.override.build.repos=true 
    

Renkai注:个人试了下只做第一步不做第二步似乎也是蛮好用的