首页 文章

命令'rebar doc'不一致

提问于
浏览
0

首先,'钢筋文件'有时有效,有时不有效 . 它很奇怪 . 我正在使用的钢筋版本是2.5.1

我的文件夹结构是:

  • Header_Directory
    1.1应用程序
    1.1.1 sub_dir_1
    1.1.2 sub_dir_2 / include
    1.1.3 sub_dir_3
    1.2 deps
    1.3 confs
    rebar.config

sub_dir_3中的模块也使用sub_dir_2 / include文件夹中的一些包含文件 .

我在使用命令rebar doc时得到的错误是:.sub_dir_3 / src / my_log_worker.erl,在模块头中:第9行:找不到文件:some.hrl edoc:跳过源文件'sub_dir_3 / src / my_log_worker . erl':{'退出',错误} . edoc:doclet中的错误'edoc_doclet':{'EXIT',error} . 错误:处理/ home / learn / header_directory / apps / sub_dir_3时doc失败:{'EXIT',error}

我做'钢筋清理',然后在'钢筋doc'之前'钢筋编译'

另外,当我在erl shell中执行它时,我收到错误 .

edoc:file(“some_log_worker.erl”,[]) . edoc:错误读取文件'some_log_worker.erl' . **函数edoc:read_source / 2(edoc.erl,第664行)中的异常退出:{error,enoent}来自edoc:read / 2(来自edoc:read / 2)的来自edoc_extract:source / 3(edoc_extract.erl,第52行)的调用edoc.erl,第537行)来自edoc:file / 2的调用(edoc.erl,第116行)

有什么方法可以将我的hrl文件包含在rebar.config或edoc选项中?

我有'{edoc_opts,[{i,“apps / sub_dir_3 / include”}]} . '在rebar.config中,仍然没有任何帮助 .

2 回答

  • 1

    看起来你没有遵循螺纹钢/ OTP惯例:

    OTP约定Rebar希望项目遵循OTP设计原则文档中描述的OTP约定:应用程序应用程序应包含以下一组目录:src
    EBIN
    私法
    包括
    并有一个应用程序资源文件:ebin / example_project.app或src / example_project.app.src . 在后一种情况下,ebin / example_project.app文件是在编译阶段自动从src / example_project.app.src生成的 .

    Rebar & OTP convetions

    我建议你转到那个文件组织,从钢筋等标准工具中受益真的会简单得多 .

  • 0

    是的,遵循OTP原则总是符合最佳利益 . 但是,它适用于我的应用程序结构 .

    唯一的问题是因为erlang模块中的@headerfile注释 . 不知何故,我不知道如何正确使用@header文件注释 .

    谢谢你的帮助 . :)

相关问题