Command' rebar doc'是不一致的

时间:2015-05-12 14:13:30

标签: erlang rebar

首先,' rebar doc'有时工作,有时不工作。它很奇怪。 我使用的钢筋版本是2.5.1

我的文件夹结构是:

  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
  2. 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':{'退出',错误}。错误:doc失败了   处理/ home / learn / header_directory / apps / sub_dir_3:{' EXIT',error}

    我做的'螺纹钢清洁'然后'螺纹钢编译'在' rebar doc'

    之前

    另外,当我在erl shell中执行此操作时,我收到错误。

      

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

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

    我有' {edoc_opts,[{i," apps / sub_dir_3 / include" }]}&#39。在rebar.config中,仍然没有帮助。

2 个答案:

答案 0 :(得分:1)

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

  

OTP惯例

     

Rebar希望项目遵循OTP惯例,如中所述   OTP设计原则文件:应用

     

应用程序应包含以下目录集:

src
ebin
priv
include
     

并拥有一个应用程序资源文件:ebin / example_project.app或   SRC / example_project.app.src。在后一种情况下,   ebin / example_project.app文件是从。生成的   src / example_project.app.src在编译期间自动生成一个   相。

Rebar & OTP convetions

我建议您转到该文件组织,从钢筋等标准工具中受益真的会更加简单。

答案 1 :(得分:0)

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

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

感谢所有帮助。 :)