我试图让詹金斯运行透析器上的erlang代码,但我有一个问题。当我们将它引入到一个现有的项目中时,有一些我们不想标记的现有错误,我们在文件透析器-忽略警告中有这些错误。
我的makefile中有这样的内容,但我真正想要做的是,如果grep返回一个空文档,返回一个值,如果有新的错误,则返回一个值。但是我的剧本
(DEPS_PLT): compile
@echo Building local plt at $(DEPS_PLT)
@echo
@(echo "Using Dialyzer in `which dialyzer`"; dialyzer --output_plt $(DEPS_PLT) --build_plt --apps $(DEPS))
dialyzer: compile $(DEPS_PLT)
@(echo "Using Dialyzer in `which dialyzer`"; dialyzer --fullpath --plt $(DEPS_PLT) -Wrace_conditions -r ./ebin)|\
fgrep -v -f ./dialyzer-ignore-warnings
发布于 2015-01-13 14:47:52
也许是这样的:
dialyzer: compile $(DEPS_PLT)
@echo "Using Dialyzer in `which dialyzer`"
@(dialyzer --fullpath --plt $(DEPS_PLT) -Wrace_conditions -r ./ebin)|\
fgrep -v -f ./dialyzer-ignore-warnings; test "$$?" != 0
也就是说,确保fgrep
的退出代码不是零。
发布于 2015-01-16 12:07:01
下面是钢筋存储库中的类似解决方案:
Makefile包含:
dialyzer: dialyzer_warnings
@diff -U0 dialyzer_reference dialyzer_warnings
dialyzer_warnings:
-@dialyzer -q -nn -n ebin -Wunmatched_returns -Werror_handling \
-Wrace_conditions > dialyzer_warnings
参考文件包含:
rebar_eunit.erl:388: Call to missing or unexported function eunit_test:function_wrapper/2
rebar_utils.erl:163: Call to missing or unexported function escript:foldl/3
https://stackoverflow.com/questions/27924125
复制相似问题