1

我有一个这样的项目结构:

ROOT/
    apps/
        common_lib_1/
            src/*.erl
            include/*.hrl
        common_lib_2/
            src/*.erl
            include/*.hrl
        common_lib_3/
            src/*.erl
            include/*.hrl
        login_server/
            src/*.erl
        game_server
            src/*.erl
    rel/

我想分发game_serverand login_servergame_server取决于common_lib_1and common_lib_2login_server取决于common_lib_1and common_lib_3

如果rebar create-node nodeid=xxxrel/game_serverand中执行rel/login_server,当我使用创建分发时rebar generate,会生成许多重复的文件。

我想用这样一个干净的结构来分发它们:

my_game/
    bin/
        game_server_region_1 # startup script of game server with region 1
        game_server_region_2 # startup script of game server with region 2
        login_server         # startup script of login server
        ...                  # other common files
    erts-5.10.3/
        bin/
    lib/
        stdlib-1.19.3/
        sasl-2.3.3/
        common_lib_1-1.0.0/
        common_lib_2-1.0.0/
        common_lib_3-1.0.0/
        game_server-1.0.0/
        login_server-1.0.0/
        ...                  # other shared libraries
    releases/
        1.0.0/
            game_server.boot
            game_server.rel
            game_server.script
            login_server.boot
            login_server.rel
            login_server.script
            game_server_region_1_vm.args
            game_server_region_1_sys.config
            game_server_region_1_vm.args
            game_server_region_1_sys.config
            login_server_vm.args
            login_server_sys.config
        RELEASES
        start_erl.data

我希望所有应用程序共享库,它们有自己的启动脚本、vm 和 sys 配置。

如何编写一个干净的 reltool.config 来做到这一点?

4

0 回答 0