这里应领导的要求,在服务器上装了upsource
Upsource的安装和与JetBrains工具的集成
JetBrains的工具一直都是我开发和学习的好帮手,本人工作主要是iOS开发,使用的是AppCode,而这里主要介绍下JetBrains的代码审查工具Upsource,它把代码审查做成了类似社交工具的效果,可以在不修改代码的情况下对代码进行注释和评论,然后再让相关人员去进行修复,而且有很多人性化的小功能。这里首先说下其安装和集成步骤。
这里IDE我用的是AppCode,版本控制则是SVN。
注意:这里仅按照mac系统来写的,windows系统最好参考下官网的具体说明,但是基本上大同小异。
一、下载和安装
首先去官网下载最新版本的Upsource,点击跳转到下载地址,这里我使用的是苹果的mac系统,但是目测windows下载下来解压后和mac都类似。目录如下:
这个解压后的文件夹其实已经可以当做软件包了,里面包括了它的各种依赖等等,Upsource是基于Java写的,已经内置了java7,也可以自定义引入java8,官网说明有详细的命令行教程,但是目测会有点小问题,不太建议重新引入,毕竟你不用去修改人家源代码。
bin目录下即是Upsource的命令行工具,我这里是mac系统,使用.sh
结尾的文件upsource.sh
即可,使用之前,最好是在root权限下进行,如下:
sudo -i
之后输入密码即可。windows系统则使用upsource.bat
随后运行命令行工具,直接把upsource.sh
文件拖入命令行工具后空格输入start
:如下
JeffreydeMacBook-Pro:~ jeffrey$ /Users/jeffrey/Soft/upsource-2017.1.1821/bin/upsource.sh start
上面的/Users/jeffrey/Soft/upsource-2017.1.1821
为我Upsource文件夹本地路径,对应换成自己的即可,如果是拖到命令行去的,则路径已经是对应自己的Upsource文件夹的路径了。
start命令执行后,等待系统安装完即可。最后命令行结果如下:
二、设置
1.URL设置
这里我们可以直接启动,要是我们的8080端口没有呗占用,upsource 的端口就会是8080,但是要是8080端口被占用了的话,他会自动的往后排,8081,8082......
启动的时候会再终端打印出来你的端口到底是哪一个
这里我想使用域名的形式去启动,所以这里我们就得去进行相关的配置
这里我参考的文章是:https://www.jetbrains.com/help/upsource/proxy-configuration.html?search=prox
因为这里我的系统是centos的。文章中说的
<upsource_home>\bin\upsource.bat
在我的环境下就是
<upsource_home>\bin\upsource.sh
<upsource_home>\bin\upsource.sh configure --listen-port 8181 --base-url http://upsource.mydomain.com
这里的listen-port 就是upsource的端口
后面是访问的URL
这个执行完成之后我们要去启动一下
<upsource_home>\bin\upsource.sh
start
然后我们去配置一下nginx
server {
listen 80;
server_name upsource.mydomain.com
;
location / {
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# to proxy WebSockets in nginx
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:8181;
proxy_pass_header Sec-Websocket-Extensions;
}
}
start执行完毕后会打开默认设置的xxx-pro.local:8080这个地址,xxx-pro.local为你服务器地址,需要配置,配置这块目前还没过多的查看,这里只做简要安装集成介绍,这里只需要知道是其实是把Upsource部署在了localhost:8080即可。因为xxx-pro.local是没有配置的,所以默认打开的地址肯定是无效的,不管它,直接手动输入localhost:8080或者把localhost改成你的ip地址(端口号别忘了写)。这样你会看到Upsource的正式页面了,如下:
点击Set up进行设置,进入如下页面:
把默认的Base URL修改掉,因为那个地址是无效的,如果需要有效需要自己去配置。
Application Listen Port端口号可以自己修改成自己想设置的,这里使用默认的8080没有修改。之后点击下一步,进行账户设置。
2.账户设置
点击后界面如下:
管理员账户用户名修改成自己想要的,然后输入密码并重复密码即可。
3.许可
默认的是免费的许可,只能10个人使用,可以点击申请60天的10000人的许可。目前我这边只是前端iOS开发,就2个人,会审查下自己和同事的代码,所以暂时免费的已经够用了。如果比较大型的公司或者团队,可能需要使用收费的。这里直接点击Finish完成。
4.等待安装完成
这个可能会花费一点时间,但是如果你之前在设置Base URL的时候没有设置为localhost:8080,那么这里会一直卡在这个等待页面不成功,你最好重新安装下(注意,最好重新解压压缩文件用新解压的文件重新来一遍)
最后完成后就是如下页面:
输入之前设置好的管理员账号即可进入管理页面
三、创建项目
1.配置填写
点击右上角登录,使用之前的管理员登录,然后点击create a project创建一个新项目如下图:
填写好项目名称project name,下面的Porject ID和Code review ID Pattern直接用系统自动生成的即可。
VCS版本控制工具这里我使用的是SVN,认证方式选的中间的账号密码认证。这里需要注意下Branches的填写,理论上你svn的路径下应该有trunk(主分支),Branches(其他分支)和tags(保存的历史版本),这里默认帮你填写了trunk和Branches,如果你直接管理你当前的的项目,那么这些需要删除掉,让Branches里面留空白即可,我这里svn路径下项目已经是我要管理的当前版本了(相当于trunk),所以Branches里面是都删除掉了的。最后点一下Test connection,如果成功,点击最下面的Create project完成即可。
注意:我这里svn使用的是https的协议,会报一个错误:
svn: E200015: Server SSL certificate for ‘https://xxx.x.x.xx:8443’ rejected, consider testing your SSL certificate with https://www.ssllabs.com/ssltest
这里xxx.x.x.xx是我ip地址。这个报错主要是因为svn使用了自签证书,如果你的svn使用的也是https协议且是自签证书,那么需要单独处理下
2.svn若使用的是https协议自签证书的处理
猜测Upsource应该和大部分前端工具一样,已经内置了常规的国际信任的证书,但是自签名证书不包括在内,这里就需要把你svn的自签证书导入到Upsource密钥库中去。
首先你需要把证书下载下来,你可以通过直接在浏览器输入你的svn的地址,我这里是火狐的浏览器,其他浏览器请自行在安全选项里把对应的证书导出来。
选择导出,导出到自己指定的一个路径即可。
然后开始使用钥匙串的命令行工具进行证书导入。记得首先进入root权限:
JeffreydeMacBook-Pro:~ jeffrey$ sudo -i
JeffreydeMacBook-Pro:~ root# keytool -import -alias my_svn_alias -keystore /Users/jeffrey/Soft/upsource-2017.1.1892/internal/java/mac-x64/lib/security/cacerts -file /Users/jeffrey/Desktop/5a8948a593e2424.cer
具体解释:
第一行进入root权限,keytool -import -alias为钥匙串的命令行指令,导入的意思,其中-alias是别名的意思,后面自己起个名字,我随便起的叫my_svn_alias,这个是在密钥库里你这个证书的别名叫什么-keystore 后面接密钥库路径,具体的路径如下图:
在Upsource文件夹里找到对应系统的cacerts文件即可,我这里的路径是/Users/jeffrey/Soft/upsource-2017.1.1892/internal/java/mac-x64/lib/security/cacerts
,-file后面跟你要导入到密钥库的本地证书的路径,我这里是/Users/jeffrey/Desktop/5a8948a593e2424.cer
,这个就是之前从浏览器导出的证书。
大致意思其实就是使用命令行把路径/Users/jeffrey/Desktop/5a8948a593e2424.cer
的这个证书,导入到了Upsource里的/Users/jeffrey/Soft/upsource-2017.1.1892/internal/java/mac-x64/lib/security/cacerts
这个密钥库文件中
如果命令行输入没有问题,那么会继续提示你需要输入密钥库的密码(导入到密钥库中需要这个密钥库的密码),Upsource自带的密码为默认的changeit,之后提示是否信任,输入y即可,最后会提示证书已添加到密钥库中。最后回到Upsource配置svn的页面在测试下,就不会报错而是成功了,点击左下角Create project即可。等待一会,则会显示成功后的第一个项目页面了:
四、IDE中集成
1.checkout项目
checkout一份项目下来,具体JetBrains的svn用法可以参考我另外一篇文章文章还是使用Appcode,但是目测大部分JetBrains的版本控制工具用法都是一样的,包括安卓studio。
2.安装插件
JetBrains已经开发了Upsource的相关插件,左上角点击Appcode->Preference->Plugins->Install JetBrains plugins,搜索Upsource,找到Upsource Integration安装并重启IDE:
3.插件配置
checkout项目后,IDE右下角你回发现Upsource的小图片,点击:
配置好Upsource的路径,填写为之前设置好的Base URL,即:http://localhost:8080:
4.关联登录
点击“OK”后,会自动进入网页中,需要关联登录,入住对应的账号登录并接收即可,最后关闭后即可和IDE相关联了。
最后成功后的结果如下:
可以看到,左下角选择器多出来了一个Reviews,右下角的Upsource的图标已经点亮。
至此,如何安装已经介绍完,后续会深入研究后会再具体说明Upsource的使用。目前关于URL这块的配置没有太详细的深入了解,大致看了下,配置完一些地方后,是可以进行外网连接且自定义域名的,类似刚开始默认的域名,个人觉得就是一个推荐的域名,但是需要你让它可用,否则默认是打不开。
原文摘自:http://blog.csdn.net/wrjzycok/article/details/70598639
upsource的官方帮助文档:https://www.jetbrains.com/help/upsource/getting-started-with-upsource.html