编译metabase

虽然我对Clojure和React都不是很了解。这不影响我对Lisp的真爱,更不会影响我本地编译Metabase。

我用的是windows操作系统。
让我来总结一下我的编译过程吧。

  • 下载Metabase源码

  • 前端环境

  • 后端环境

  • 开始动手编译

下载Metabase源码

git clone https://github.com/metabase/metabase.git

docs/developers-guide.md中有写编译的步骤,可以参考

前端环境

安装node

https://nodejs.org/zh-cn/

安装yarn

https://yarn.bootcss.com/docs/install/#windows-stable

后端环境

安装maven

这是java的包管理工具

安装leiningen

这个是Clojure的包管理器,由于网络的问题安装时花了我好多时间。
官网https://leiningen.org/下载lein script.
在这里插入图片描述

然后在电脑上的Git bash,cd到metabase源码目录下,把lein script的目录添加到path中,假设lein scripts的目录是d:/tools

set path = d:/tools:$PATH

然后执行

lein self_install

由于网络的原因,我装了得有半个小时吧,其实它就是去github上下载了一个jar文件,同时做了一些设置。这个jar文件就是leiningen-2.9.3-standalone.jar。在这里https://github.com/technomancy/leiningen/releases。下载到了C:\Users\你的用户名.lein\self-installs目录下

在这里插入图片描述

开始动手编译

还是在之前的bash git中,执行

./bin/build

报错了错误时

$ ./bin/build translations
Running 'yarn' to download javascript dependencies...
yarn install v1.17.3
$ echo $npm_execpath | grep -q yarn || echo '\033[0;33mSorry, npm is not support
ed. Please use Yarn (https://yarnpkg.com/).\033[0m'
'\033[0;33mSorry, npm is not supported. Please use Yarn (https://yarnpkg.com/).\
033[0m'
[1/5] Validating package.json...
[2/5] Resolving packages...
success Already up-to-date.
Done in 0.99s.
Running './bin/i18n/build-translation-resources' to build translation resources...
Compiling locales/ca.po for frontend...
+ Warning: removed 1 fuzzy translations
msgfmt: Java compiler not found, try installing gcj or set $JAVAC
msgfmt: compilation of Java class failed, please try --verbose or set $JAVAC
Building translation resources failed, please install 'gettext', or build without translations by running './bin/build no-translations'.

大意是找不到java的编译器,但是javac命令是可以找到的,我就不知道为什么,难道是让我设置$JAVAC=javac,我没试,直接用了./bin/build no-translations

下面就是漫长的等待时间了,既要下载需要的clojure包也要下载npm包,鬼知道我折腾了多久。网络环境阻碍了中国的技术进步呀:(

由于这个过程是我编译成功后再总结的,可能丢失了一些细节,我已经回忆不上来了。还要补充一下,我机器上安装了Clojure的REPL,我不知道如果没有这个东西能不能编译成功(我猜大概率可以成功的,但是我没有功夫卸载之后再编译)。我电脑很久以前也安装了jdk,版本是

java 12.0.2 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

如果老天保佑的话,你也会成功的,那么在target\uberjar目录下就会有metabase.jar,执行试试吧java -jar metabase.jar

真是太难了,java -jar metabase.jar运行成功了,但是在浏览器中输入localhost:3000确实白页面,浏览器中报错

在这里插入图片描述

我只关注了这条错误,其实始作俑者是第一条报错。浏览器限制了inline script的执行,而index.html页面中有几段inline的脚本。我实在搞不清楚为什么hash值不一致,只能把这个限制干掉了,在metabase\src\metabase\middleware\security.clj中加入了"‘unsafe-inline’",从新打包./bin/build uberjar
在这里插入图片描述

还要提一下,不知道是我电脑的原因,还是代码量太大,编译一次要很长时间,十分钟起步吧。我对Java和Clojure不熟,不知道真正开发时是不是也是这样的,如果这样那不是痛苦死了。后面慢慢了解吧

截个图庆祝一下吧

在这里插入图片描述

如果有帮助,请点赞哦:)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 metabase的部署与启用 (1) 在linux里用docker启用metabase(略) (2) 在Windows10里用java jar 运行Metabase 1) 下载Metabase jar,在官网下载后缀jar的文件包,建议放在D盘,后面power shell 切换到D盘方便; 2) 下载java,我安装的最新版本jdk-13_windows-x64_bin,不像老版本还需要装jre,按照默认目录一直next安装就好; 3) Window10配置java环境变量:在环境变量里的系统变量  新建变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk-13(根据自己的jdk安装目录);  新建变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; (注意前后的符号,这句可通用,都一样);  找到系统变量里的path:分两行添加:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin(Windows10会自动区分每一个,所以不像之前的要写在一起) (3) 在cmd里输入java;javac;java -version 看是否配置成功; (4) Metabase的启动,在控制台中(例如:PowerShell),输入指令:java -jar metabase.jar,会加载一段时间,最后会出现Metabase Initialization COMPLETE;然后就可以在浏览器访问localhost:3000。 (5) 第一次启动会配置应用程序数据库,我是mysql,用的root用户和密码123456,第一个name随便起,下面会让填数据库的名字,Host:localhost;Port:3306;这两个是统一一样的。 (6) 注:第二次再用power shell 启动metabase的时候,仍把目录切换到metabase.jar所在的目录,我这里是D盘,不然直接在默认目录输入java -jar metabase.jar会报错:找不到这个metabase.jar。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值