2015-05-12 72 views
0

首先,'rebar doc'有時有時候有時候不起作用。它很奇怪。我使用的 螺紋鋼版本2.5.1命令'rebar doc'不一致

我的文件夾結構是:

  1. Header_Directory
    1.1應用
    1.1.1 sub_dir_1
    1.1.2 sub_dir_2 /包括
    1.1。 3 sub_dir_3
    1.2 deps
    1.3 confs
    rebar.config

sub_dir_3中的模塊還使用來自sub_dir_2/include文件夾的一些包含文件。

The error I get when I use the command rebar doc is:
.sub_dir_3/src/my_log_worker.erl, in module header: at line 9: file not found: some.hrl edoc: skipping source file 'sub_dir_3/src/my_log_worker.erl': {'EXIT',error}. edoc: error in doclet 'edoc_doclet': {'EXIT',error}. ERROR: doc failed while processing /home/learn/header_directory/apps/sub_dir_3: {'EXIT',error}

我做「鋼筋乾淨」,然後之前「螺紋鋼DOC」

此外,當我做在ERL殼「螺紋鋼編譯」,我得到的錯誤。

edoc:file("some_log_worker.erl", []).
edoc: error reading file 'some_log_worker.erl'.
** exception exit: {error,enoent}
in function edoc:read_source/2 (edoc.erl, line 664) in call from edoc_extract:source/3 (edoc_extract.erl, line 52)
in call from edoc:read/2 (edoc.erl, line 537)
in call from edoc:file/2 (edoc.erl, line 116)

有沒有什麼方法可以將我的hrl文件包含在rebar.config或edoc選項中?

我有'{edoc_opts,[{i,「apps/sub_dir_3/include」}]}'。在rebar.config中,仍然沒有幫助。

+1

你可能想看看格式化你的代碼。 – Huey

回答

1

看起來你沒有按照螺紋鋼/ OTP約定:

OTP Conventions

Rebar expects projects to follow the OTP conventions as described in the OTP Design Principles document: Applications

An application should consists of the following set of directories:

src 
ebin 
priv 
include 

and have an application resource file: ebin/example_project.app or src/example_project.app.src. In the later case, the ebin/example_project.app file is generated from the src/example_project.app.src one automatically during the compilation phase.

Rebar & OTP convetions

我建議你移動到文件的組織,這將是非常簡單得多受益於標準像螺紋鋼這樣的工具。

+0

是的,遵守OTP原則始終符合最佳利益。不過,它適用於我的應用程序結構。唯一的問題是由於erlang模塊中的@headerfile註釋。 –

0

是的,遵守OTP原則始終符合最佳利益。不過,它適用於我的應用程序結構。

唯一的問題是由於erlang模塊中的@headerfile註釋。不知何故,我不知道如何正確使用@headerfile註釋。

感謝您的幫助。 :)