한
zpt$
apps
app1
ebin
include
myrecords.hrl
priv
src
app2
ebin
include
myrecords.hrl
priv
src
etc
많은 감사,
LRP하지만, 일반적인 레코드 정의를 포함 여러 프로젝트에. 그런 다음 철근을 종속성으로 포함하기 위해 사용했습니다. hrl 파일을 포함 할 때는 include_lib
구문을 사용합니다. 이 구문을 사용하면 다른 응용 프로그램의 hrl 파일을 포함 할 수 있습니다.
이
- 그것은 철근 종속 시스템
멋지게 재생 : some_src.erl 또는 other_src.erl 중 하나에 게재 될 수 있습니다
app
ebin
include
priv
src
some_src.erl
deps
common_hrl_app
include
common_records.hrl
src
ebin
other_dep_app
src
other_src.erl
.
.
.
include_lib
예 : 때문에
-include_lib("common_hrl_app/include/common_records.hrl").
나는이 방법을 좋아한다
- 버전 관리에서 한 곳에서 hrls를 추적 할 수 있습니다.
- 새 응용 프로그램이 동일한 레코드를 사용하는 다른 응용 프로그램과 호환되도록하려면이 응용 프로그램을 버전 화하여 특정 버전을 가져올 수 있습니다. 코멘트에서
응답 질문 :
나는 철근 버전을 확인할 수 있도록 응용 프로그램의 이름과 버전을 지정하는 EBIN 디렉토리에 해골 응용 프로그램 파일이 있습니다. 여기에 예를 들어 철근으로
{application,common_hrl_app,
[{description,[]},
{vsn,"1"},
{registered,[]},
{applications,[kernel,stdlib]},
{env,[]},
{modules,[]}]}.
, 당신은 의존성 등의 여러 응용 프로그램을 가질 수있는 최고 수준의 응용 프로그램을 가지고있다. 보강 철근이 이러한 종속성을 가져 오면 deps 디렉토리에 배치합니다. 이러한 응용 프로그램 중 하나에 자체 종속성이있는 경우 해당 응용 프로그램도 deps 디렉토리로 가져 오는 식으로 진행됩니다. deps 디렉토리의 무한대로 중첩 된 계층 구조는 없습니다.
멋진 솔루션처럼 보입니다. 하지만 난 두 가지에 대해 잘 모르겠다. 아마 Rebar와 약간 불안정하기 때문일 것이다. 1) common_hrl_app에 include 디렉토리를 제외하고 모두 비어 있나? 2) deps 하위 트리가 내 트리의 다른 모든 응용 프로그램에 포함됩니까? –
답변에 대한 설명이 추가되었습니다. – kjw0188