关于mac下sbt编译Akka出现ScalaDoc diagrams not generated!的那些坑

本文适用于macos下用sbt publish akka卡在ScalaDoc diagrams not generated!阶段的问题。

说在前面:

如果认为scaladoc这部没必要,那么直接

sbt -Dakka.scaladoc.diagrams=false publishLocal

就可以了,本文基于需要生成scaladoc的情况下。


基本思路:

1、正确安装并配置sphinx

2、正确安装graphviz

3、编译akka需要先clean


首先确保brew已安装,详见

http://brew.sh/

截至本文发布时,安装brew的脚本为:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1、正确安装sphinx

详见此文:

https://segmentfault.com/a/1190000004234850

注意需要首先安装mysql,再安装sphinx。sphinx安装好之后需要配置和测试,上面链接已经详细写出,在此不再赘述。

然后安装sphinx-build

sudo easy_install sphinx

验证安装成功与否:

which sphinx-build

如果有打印结果应该就是成功了。


2、正确安装graphviz

终端内执行

brew install graphviz

但是我安装的时候遇到了brew无法link的问题。请在安装完务必注意一下brew打印的日志。出现无法link的时候会有红色字体标出。看看是哪个文件夹出现问题。

比如我安装的时候出现libpng无法被link,提示/usr/local/share/man/man3 Permission Denied; graphviz无法被link,提示/usr/local/share/man/man7 Permission Denied.

于是检查一下

cd /usr/local/share/man/

ls -l

发现man3 man7的权限都是root:wheel, 而brew的权限是当前用户权限(brew不允许sudo)。

所以在这里chown一下

sudo chown 用户名:admin man3

sudo chown 用户名:admin man7

然后让brew重新走link的步骤(或者重装)

万能的重装

brew remove graphviz

brew remove libpng

brew install graphviz

(libpng为graphviz的依赖,所以无需手动安装)


为了确保graphviz正确安装,可以which dot

如果打印了

/usr/local/bin/dot

应该就是成功了,也可以试试用dot画个图。怎么画可以上网找graphviz的教程。


3、clean then publish

这个地方我也是偶然发现,因为sphinx、graphviz都验证无误了,为什么还是无法publish?

然后我就重新clone了一个最新版本的akka,然后sbt publish, 发现居然成功了,那么为啥之前的失败?忽然想到从来没有clean(算是坏习惯吧?但是clean会废弃以前所有的编译结果,造成编译时间超级长);

于是回到老的akka

sbt clean publishLocal

10分钟后,succeed……

好吧,我输了。


希望能帮上同样需要生成scaladoc的朋友。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值