Bạn sử dụng công cụ nào để xây dựng chương trình Erlang: Emake, makiefile hay cách khác?Bạn sử dụng công cụ nào để xây dựng chương trình Erlang?
Trả lời
Vì các câu trả lời, một tiêu chuẩn mới đã nổi lên trong cộng đồng Erlang:
Đây là Makefile và Emakefile tôi thường sử dụng với make (origin unknown).
Makefile:
ERL=erl
APPFILE=myApp.app
all: ebin/$(APPFILE)
$(ERL) -make
ebin/$(APPFILE): src/$(APPFILE)
cp $< [email protected]
Emakefile:
{"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}.
tôi sử dụng một Rakefile gọi một Emakefile. Rakefile cho tính linh hoạt và Emakefile cho tốc độ!
build này hệ thống là khá mạnh mẽ, xem erl_rake
trên GitHub
Tạo .app tác phẩm, xây dựng phiên bản tự động, chạy thử nghiệm EUnit. Và cho nó được xây dựng xung quanh một Rakefile, tôi đã thêm dễ dàng đẩy phát hành để AWS và chạy thử nghiệm của tôi với etap thay thế.
Tôi đã tùy chỉnh phiên bản cũ cho các dự án github của tôi.
liên kết github của bạn là 404. –
Cảm ơn Thom. Mặc dù nhận xét này đã lỗi thời. Giống như mọi người khác, bây giờ tôi sử dụng cốt thép – cstar
Chúng tôi cũng sử dụng Emakefile tương tự.
{"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}.
Tôi sử dụng chức năng làm cho chạy thử nghiệm sau khi biên dịch thành công.
Makefile chiết xuất:
all: compile
compile:
erlc -o ebin +debug_info erl_make.erl
erl -pa ./ebin -eval "erl_make:make(development)" -s init stop -noshell
erl_make.erl
-module(erl_make).
-export([make/1]).
make(Mode) ->
case make:all([{d, Mode}]) of
error ->
error;
_ ->
test_suite:test()
end.
Cảm ơn câu trả lời tuyệt vời này! =) –
Bạn có thể kiểm tra Makefiles của tôi, tôi đã đưa họ từ mochiweb hoặc một cái gì đó như thế. Xin lỗi nhưng mã có một số bộ phận dự án-quy định
http://github.com/JLarky/eadc-hub/blob/master/Makefile
MARKDOWN_SOURCES=$(wildcard doc/*.md) MARKDOWN_TARGETS=$(patsubst doc/%.md,doc/html/%.html,$(MARKDOWN_SOURCES)) all: eadc boot deps eadc: ebin cd src && $(MAKE) deps: (cd deps/somedeps;$(MAKE);) docs: erlang-docs # html-docs erlang-docs: doc/edoc (cd src;$(MAKE) docs) html-docs: doc/html $(MARKDOWN_TARGETS) doc/edoc: mkdir -p doc/edoc doc/html: mkdir -p doc/html doc/html/%.html: doc/%.md (title=`grep '^# ' $ [email protected] ;\ python doc/buildtoc.py $$t ;\ markdown $$t >> [email protected] ;\ rm $$t ;\ cat doc/footer.html >> [email protected]) ebin: mkdir -p ebin clean: clean-docs (cd src;$(MAKE) clean) (cd deps/*/; $(MAKE) clean) $(RM) -r priv $(RM) ebin/*.boot ebin/*.script ebin/*crash.dump ebin/*~ src/*~ priv/*~ *~ \#*\# clean-docs: clean-html $(rm) -rf doc/edoc clean-html: rm -rf doc/html boot: ebin/eadc.boot ebin/eadc.boot: ebin/eadc.rel ebin/eadc.app erl -pa ebin -noshel -run eadc_utils make_script -run erlang halt cleandb: $(RM) -r ebin/Mnesia*
http://github.com/JLarky/eadc-hub/blob/master/support/include.mk
## -*- makefile -*- ## Erlang ERL := erl ERLC := $(ERL)c INCLUDE_DIRS := ../include $(wildcard ../deps/*/include) EBIN_DIRS := $(wildcard ../deps/*/ebin) ERLC_FLAGS := -W $(INCLUDE_DIRS:../%=-I ../%) $(EBIN_DIRS:%=-pa %) ifndef no_debug_info ERLC_FLAGS += +debug_info endif ifdef debug ERLC_FLAGS += -Ddebug endif EBIN_DIR := ../ebin DOC_DIR := ../doc/edoc EMULATOR := beam ERL_SOURCES := $(wildcard *.erl) ERL_HEADERS := $(wildcard *.hrl) $(wildcard ../include/*.hrl) ERL_OBJECTS := $(ERL_SOURCES:%.erl=$(EBIN_DIR)/%.$(EMULATOR)) ERL_DOCUMENTS := $(ERL_SOURCES:%.erl=$(DOC_DIR)/%.html) ERL_OBJECTS_LOCAL := $(ERL_SOURCES:%.erl=./%.$(EMULATOR)) APP_FILES := $(wildcard *.app) REL_FILES := $(wildcard *.rel) EBIN_FILES_NO_DOCS = $(ERL_OBJECTS) $(APP_FILES:%.app=../ebin/%.app) $(REL_FILES:%.rel=../ebin/%.rel) EBIN_FILES = $(ERL_DOCUMENTS) $(EBIN_FILES_NO_DOCS) MODULES = $(ERL_SOURCES:%.erl=%) ../ebin/%.app: %.app cp $
http://github.com/JLarky/eadc-hub/blob/master/src/Makefile
include ../support/include.mk all: $(EBIN_FILES_NO_DOCS) docs: $(ERL_DOCUMENTS) *emphasized text* debug: $(MAKE) DEBUG=-DDEBUG clean: rm -rf $(EBIN_FILES) $(PLUGINS_OBJECTS)
Tôi đề nghị công cụ của riêng tôi :) Eake ...rất giống với cào từ Ruby môi trường:
http://github.com/andrzejsliwa/eake
hoặc
http://andrzejsliwa.com/2009/05/28/eake-narzedzie-budowania-dla-erlanga-bazujace-na-rake/
Dưới đây là ví dụ eakefile
-module(eakefile). -compile([export_all]). -import(eake, [task/3, namespace/3, run_target/2, run/1]). execute() -> [ namespace(db, "test", [ task(migrate, "That is migration", fun(Params) -> io:format("in migration params: ~w", [Params]), run_target('db:rollback', []) end), task(rollback, "That is rollback", fun(_) -> io:format("in rollback"), run("ls") end) ]) ].
và đây là ví dụ sử dụng:
$ eake db:migrate $ eake db:migrate db:rollback $ eake db:migrate=[1,atom] $ eake db:migrate=name
Sử dụng Sinan để xây dựng và Faxien để cài đặt! Kiểm tra erlware.org. Họ là cách tốt hơn so với một tập tin thực hiện và cung cấp dễ dàng phân phối. Cả hai đều trong phát triển tích cực nặng và sẽ xuất hiện trong: http://www.manning.com/logan/
- 1. Công cụ xây dựng nào để dạy?
- 2. Khi nào cần sử dụng công cụ xây dựng?
- 3. Bạn đang sử dụng công cụ phát triển và xây dựng vòng đời nào?
- 4. Erlang - trường hợp xây dựng
- 5. Bạn sử dụng bộ âm thanh xây dựng nào?
- 6. xây dựng (các) công cụ nào bạn khuyên dùng cho python?
- 7. Xây dựng nhiều tệp Erlang Beam?
- 8. Bạn sử dụng công cụ nào để hỗ trợ XCode?
- 9. Công cụ tốt để xây dựng đường ống là gì?
- 10. Tôi có thể sử dụng thư viện nào để xây dựng GUI bằng Erlang?
- 11. Bạn sử dụng công cụ/ngôn ngữ nào để triển khai ứng dụng web PHP?
- 12. công thức để xây dựng một chế độ bao bọc emacs xung quanh một chương trình dòng lệnh?
- 13. Sử dụng CMake để chạy một chương trình C++ sau khi xây dựng
- 14. Cách sử dụng `Tùy chọn Java` trong công cụ xây dựng kiến jenkins để đặt ANT_OPTS
- 15. Làm thế nào tôi có thể tăng tốc quá trình xây dựng bằng cách sử dụng công cụ maven
- 16. Công cụ nào bạn đề xuất để tự động tạo ứng dụng của bạn?
- 17. Sử dụng SCons làm công cụ xây dựng cho các đường rãnh
- 18. Làm thế nào để xây dựng trong hỗ trợ gprof cho một chương trình được xây dựng với SCons?
- 19. Dùng maven làm công cụ xây dựng cho Weblogic 10.3
- 20. Xây dựng một chương trình từ A-> Z
- 21. Xây dựng SDL cho ARM bằng cách sử dụng công cụ độc lập Android
- 22. Gọi lại Jquery với công cụ xây dựng
- 23. Làm cách nào để kiểm soát phiên bản công cụ và thư viện xây dựng?
- 24. Bạn sử dụng công cụ khai thác dữ liệu nào?
- 25. Xây dựng công cụ tìm kiếm trên web
- 26. Bạn có thể sử dụng tệp xây dựng ANT làm tệp xây dựng Phing không?
- 27. Bạn sử dụng công cụ nào để tạo liên kết tích hợp liên tục (CI)?
- 28. Làm thế nào để sử dụng trình biên dịch 'yield return' để xây dựng một lớp
- 29. Công cụ phủ sóng xây dựng cho các công cụ dành cho nhà phát triển chrome
- 30. Đề xuất về cách xây dựng công cụ Diff HTML?
Nó không phải là một tiêu chuẩn thực sự, nhưng một sự đóng góp. Việc tạo ra Erlang là một tiêu chuẩn vì nó được bao gồm trong bản phân phối. – tuscland