如何使用偏航作为带钢筋的 OTP 版本的一部分?
Posted
技术标签:
【中文标题】如何使用偏航作为带钢筋的 OTP 版本的一部分?【英文标题】:How to use yaws as a part of an OTP release with rebar? 【发布时间】:2015-02-15 03:26:44 【问题描述】:我密切关注关于dependencies management 和release handling 的钢筋文档,并尝试创建一个类似于我之前的问题之一的accepted answer 中描述的版本。
但是,我无法将偏航作为 OTP 应用程序包含在由 rebar 生成的 OTP Release 中。
这是我的工作:
根据官方 rebar 文档创建一个版本(完成,可以使用 /rel/myapp/bin/myapp start 运行一个简单的 gen_server) 在项目目录下的rebar.config文件中指定yaws依赖 运行rebar get-deps
(这会拉偏航和ibrowse)
将此添加到reltool.config
:app, yaws, [incl_cond, include]
将偏航添加到myapp.app.src
中的应用程序列表中
rebar compile generate
:
...
==> Leaving directory '/myapp/deps/yaws/rel'
==> yaws (compile)
yaws.erl:13: can't find include file "yaws_appdeps.hrl"
yaws.erl:220: undefined macro 'YAWS_APPDEPS'
yaws.erl:174: function start_app_deps/0 undefined
yaws.erl:194: function start_app_deps/0 undefined
ERROR: Command [compile] failed!
注意事项:
官方的yawsdocumentation好像对这个问题不是很解释。
如果我将 yaws 更改为牛仔,我不会收到这样的错误。
更新
这是我的目录结构:
.
├── apps
│ └── myapp
├── deps
│ ├── ibrowse
│ └── yaws
└── rel
└── files
【问题讨论】:
您使用的是什么版本的钢筋?这似乎是钢筋未运行src/yaws.app.src.script
文件引起的问题。例如,最近在提交 7d55c99 中修复了这个钢筋区域的错误。
不幸的是,除非我签出 rebar commit b796065,构建它并使用该 rebar 构建 yaws 和应用程序,然后生成版本,否则我无法使其与新的钢筋一起工作.该提交是我在之前评论中提到的那个之前的那个。
史蒂夫,非常感谢您的评论。我获取了 b796065,重新编译了 rebar 并用它来编译/生成。不幸的是,我得到了完全相同的错误。
你获取的是什么版本的偏航?确保它是 1.98 或更高版本。您也可以尝试完全删除deps/yaws
,让您的新钢筋重新获取并重建它。
我已删除 deps/yaws
并重新获取 yaws 1.99。不幸的是,我得到了完全相同的错误。
【参考方案1】:
打开yaws的src目录。缺少的“yaws_appdeps.hrl”包含文件可能具有“.ini”或“in”扩展名。删除它并重新编译
【讨论】:
以上是关于如何使用偏航作为带钢筋的 OTP 版本的一部分?的主要内容,如果未能解决你的问题,请参考以下文章