我使用 mochiweb 风格的风格。要查看此示例,请获取您的 mochiweb 副本:
svn checkout http://mochiweb.googlecode.com/svn/trunk/ mochiweb
并使用
path/to/mochiweb/scripts/new_mochiweb.erl new_project_name
创建结构的示例项目(之后可以随意删除 src 中的所有内容并将其用于您的项目)。
看起来像这样:
/
/ebin/
/deps/
/src/
/include/
/support/
/support/include.mk
Makefile
start.sh
-
ebin 包含 *.beam 文件
-
src 包含 ***.erl 文件和 本地 *.hrl 文件
-
include 包含 全局 *.hrl 文件
-
deps 包含指向依赖项根目录的符号链接
Makefile 和 include.mk 负责在构建项目时包含适当的路径。
start.sh 负责在项目运行时包含适当的路径。
因此,使用 deps 目录中的符号链接,您可以微调用于每个项目的库版本。建议使用相对路径,所以之后将这个结构 rsync 到生产服务器并运行它就足够了。
在全球范围内,我使用以下结构:
~/code/erlang/libs/*/
~/code/category/project/*/
~/code/category/project/*/deps/*/
deps 中的每个符号链接都指向 ~/code/erlang/libs/ 中的库或同一类别中的另一个项目。