【发布时间】:2011-08-31 19:12:27
【问题描述】:
在我的项目中,我想使用 mysql,所以我签出了这个https://github.com/dizzyd/erlang-mysql-driver。我想知道如何安装应用程序以便我的项目可以与之交互
【问题讨论】:
标签: erlang
在我的项目中,我想使用 mysql,所以我签出了这个https://github.com/dizzyd/erlang-mysql-driver。我想知道如何安装应用程序以便我的项目可以与之交互
【问题讨论】:
标签: erlang
看看“钢筋” - https://bitbucket.org/basho/rebar/wiki/Home
它可用于安装依赖项,以及创建独立版本。
快速浏览一下您要使用的 erlang-mysql-driver,表明它也在使用 rebar 进行依赖管理。
【讨论】:
如果你已经开始布局你的应用程序(已经完成了一些编码)或者你是新手,rebar 可能会使事情复杂化,但是,如果你的项目是一个 erlang/OTP 应用程序,那么我建议你首先组织你的代码根据推荐的文件系统是这样的:
我的项目--/src /ebin /lib /包括 /priv /文档 /例子 /测试 /EmakefileEmakefile 是一个重要文件。它可能没有文件扩展名。它使 BIF:make:all() 能够编译您指向它的所有 erlang 源模块,并将所有 .beam 文件传输到您想要的目标。
例如:我是否要编译src 中的所有模块并将光束文件传输到ebin,我将其输入Emakefile
在这种情况下,我将启动 erlang shell,其 pwd() 指向文件夹 MyProject,以启用函数调用 make:all() 以查找文件 Emakfile 以便编译我所有的 src 文件。
现在,假设您有另一个 OTP 应用程序,您想在构建中将其作为一个额外的包。如果它像我向您展示的那样安排了类似 OTP,并且尚未构建,即尚未制造,我的意思是只有它的 src 和它的文件夹 ebin 是空的,或者它 ebin 可能包含.APP file已经。然后将此 OTP 应用程序复制到您的 lib 文件夹中,使您的应用程序如下所示:
然后我们将Emakefile 更改为如下所示:
在文件夹MyProject 中,您可以放置一个shell 脚本,该脚本将启动您的项目并将所有相关的ebin 路径添加到您的节点代码路径中。sh 脚本可能如下所示:
您可以将此文件保存为start_project.sh。因此,当您更改源代码时,即使在启动项目时,当您运行 sh 脚本时终端路径指向文件夹:MyProject,您可以这样做:
这将在您在脚本中输入的节点处启动您的项目,并编译所有在关闭时更改的 src 文件。不仅如此,你还可以在你的 shell 中调用:make:all(),每当你对你的 src 代码进行更改时。然后你会在 make 之后调用:l(some_module),以便 erlang vm 重新加载已编译模块的新目标代码。
因此,您的整个项目现在将如下所示:
因此,如果您将 mysql 应用程序的 erlang 驱动程序替换为“some_otp_app-1.0”,一切都会好起来的。成功!
【讨论】: