为了方便发布tar,rebar3要适应relx迁移include目录到src目录

你。 提交于 2019-12-10 08:44:23

使用rebar3打tar包,十分方便。其中rebar3使用relx打包,relx里面有下面的选项,可以在打包的时候,不打包src目录,方便在发布的时候,不发布src里面的源码文件:

%% relx will include src files of your applications, if present, by default.
%% If you don't want to include the src files, set `include_src` to false.
{include_src, false}.

参考:relx Configuration

但我们使用rebar3生成项目的时候,src、include是处于相同等级的目录下面,发布的时候,使用上面的选项可以不发布src目录,但include目录会被发布出去。这个不方便我们发布。

那有没有 include_include 选项呢?

答案是没有。参考:include_src ok but what about include_include ? #99

但我们可以通过compile的选项来绕过这个问题。

compile有个选项是{i,Dir},  它会在Dir目录下面查找需要的编译头文件。

rebar3可以设置这个选项在erl_opts下面,参考:how to set include directory for rebar

{erl_opts, [{i, PathToIncludeFile}]}.

这样,我们就可以把include目录迁移到src目录,这样就可以在发布的时候,不拷贝include目录了。

注意,PathToIncludeFile是在rebar3当前目录对应的目录,要注意相对目录。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!