【问题标题】:How to use yaws as a part of an OTP release with rebar?如何使用偏航作为带钢筋的 OTP 版本的一部分?
【发布时间】:2015-02-15 03:26:44
【问题描述】:

我密切关注关于dependencies managementrelease 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。不幸的是,我得到了完全相同的错误。

标签: erlang erlang-otp rebar yaws cowboy


【解决方案1】:

打开yaws的src目录。缺少的“yaws_appdeps.hrl”包含文件可能具有“.ini”或“in”扩展名。删除它并重新编译

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 2012-07-14
    • 2017-04-05
    • 2014-06-04
    • 2011-07-27
    • 2017-05-22
    • 2023-04-01
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多