这个例子是cowboy helloword例子改造为rebar3的例子。

1.首先需要下载一个idea,免费版即可

2.随便创建一个项目,进入idea后,File->Plugins,搜索安装erlang,安装完毕重启idea

3.File->Other Settings->Erlang External Tools

4.点击上图Download the latest Rebar 3,放到自己熟悉的目录,下载完毕后找到下载目录,配置环境变量。window需要在相同目录创建一个reabr3.cmd文件,并粘贴上如下内容。(详细可查官网Getting Started | Rebar3)

@echo off
setlocal
set rebarscript=%~f0
escript.exe "%rebarscript:.cmd=%" %*

然后运行rebar3 --version检查是否安装成功,能看到版本号就成功了。

5.创建项目,如下创建一个名为cowboy_study的项目

rebar3 new release cowboy_study

6.导入项目,进入idea内,File->New->Project from Existing Sources,然后选择创建的项目,ok。

选择导入项目类型,next

选择之前下载的rebar,注意,这里windows需要选择rebar3.cmd否者idea可能无法导入rebar3项目。然后一直next直到完成。

7.进入项目后将rebar3.cmd修改为rebar3,具体步骤参考步骤3,只需要选中rebar3而不是rebar3.cmd。

8.添加cowboy依赖,打开rebar3.config,添加cowboy依赖

{cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.7.1"}}}

完整文件如下所示:

{erl_opts, [debug_info]}.
{deps, [{cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.7.1"}}}
]}.{relx, [{release, {cowboy_study, "0.1.0"},[cowboy_study,sasl]},{mode, dev},%% automatically picked up if the files%% exist but can be set manually, which%% is required if the names aren't exactly%% sys.config and vm.args{sys_config, "./config/sys.config"},{vm_args, "./config/vm.args"}%% the .src form of the configuration files do%% not require setting RELX_REPLACE_OS_VARS%% {sys_config_src, "./config/sys.config.src"},%% {vm_args_src, "./config/vm.args.src"}
]}.{profiles, [{prod, [{relx,[%% prod is the default mode when prod%% profile is used, so does not have%% to be explicitly included like this{mode, prod}%% use minimal mode to exclude ERTS%% {mode, minimal}]}]}]}.

下载完后cowboy_study.app.src文件添加cowboy

{application, cowboy_study,[{description, "An OTP application"},{vsn, "0.1.0"},{registered, []},{mod, {cowboy_study_app, []}},{applications,[kernel,stdlib,cowboy %%这里添加cowboy]},{env,[]},{modules, []},{licenses, ["Apache 2.0"]},{links, []}]}.

9.修改cowboy_study_app.erl代码,完整如下所示:


-module(cowboy_study_app).-behaviour(application).-export([start/2, stop/1]).start(_StartType, _StartArgs) ->Dispatch = cowboy_router:compile([{'_',[{"/",toppage_h,[]}]}]),{ok,_} = cowboy:start_clear(http,[{port,8080}],#{env=>#{dispatch=>Dispatch}}),cowboy_study_sup:start_link().stop(_State) ->ok = cowboy:stop_listener(http).%% internal functions

10.创建toppage_h.erl文件,写下以下代码:


-module(toppage_h).
-author("admin").%% API
-export([init/2]).
init(Req,Opts)->Req = cowboy_req:reply(200,#{<<"content-type">>=><<"text/plain">>},<<"Hello world!">>,Req),{ok,Req,Opts}.

11.idea快捷启动配置,具体如图

Run in module需要取消勾选,然后apply->ok保存。

最后点击顶部栏的运行按钮便会自动下cowboy依赖并运行,最后访问浏览器http://localhost:8080/即可。

12.代码联想,idea默认只会联想erlang sdk中的代码和工程中我们自己写的代码,但是cowboy的代码却无法联想,解决办法有两种。一定要先运行起来项目,否者类库可能没有下载完。

第一:将找到rebar3下载的目录,将下载的库拷贝到erlang sdk中的lib目录,这种方式不推荐。

第二:设置idea项目,具体如下,File->Project Structure

然后选择1 Jars or Directories

最后点击ok,看清楚层级结构,这里的接口和idea中显示的层级结构不太一样,不要进入apps\cowboy_study\_build,

比如我的项目应该选择的目录是D:\code\erlangPreoject\cowboy_study\_build\default\lib

而不是D:\code\erlangPreoject\cowboy_study\apps\cowboy_study\_build\default\lib

由于我也是初学对rebar3这种项目结构也不太理解,也可能跟随版本不一样或者创建的项目命令不一样而不同,(我的是使用rebar new release xxx创建的),总之,找到cowboy在的父目录就行。

最后点击ok就可以联想和跳转代码了,但是这种方式只是个人找到的最好的方式。

1.idea搭建rebar3 的cowboy 服务器项目,解决cowboy代码联想跳转问题相关推荐

  1. windoes服务器搭建Jenkins和部署war项目

    目录 背景 环境准备 安装JDK Tomcat maven 安装Jenkins 安装 解决无法下载插件 安装中文插件 构建项目 解决入站规则 总结 背景 背景介绍:由于工作原因,小编申请新的服务器环境 ...

  2. 云服务器建站教程——Apache和IIS搭建WordPress和其他Web项目

    文章目录 介绍 1. 使用Apache搭建WordPress 1.0 简述 1.1 开始 2. 使用IIS同时部署WordPress和其他Web项目 2.0 简述 2.1 开始 2.1.1 安装IIS ...

  3. 使用maven搭建ssm框架的javaweb项目

    目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...

  4. 搭建git for windows服务器(100%可以成功)【转】

    转自:http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用,为什么还要搭建git windows的服务器 ...

  5. putty php环境搭建,centos7(linux)系统下php搭建环境和创建laravel项目

    laravel-企业官网-搭建环境和创建laravel项目 购买centos7云服务器,再远程连接 1. 下载putty 输入服务器账号密码远程链接yum install -y wget && ...

  6. Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型

    场景 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件让全世界浏览,还可以放置数据文件,让全世界下载.目前最主流的Web服务 ...

  7. 阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)

    起因 自己会有练手的不敢公开的项目,就自己搭建个服务器放自己的渣代码了. 在经历了连不上服务器.没有访问权限.没法提交以后,我打通了任督二脉. 我这个git服务器适合条件:1.就那么几个人小项目,不是 ...

  8. 轻松搭建一个Windows SVN服务器

    轻松搭建一个Windows SVN服务器 前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个 ...

  9. asp.net尚未在web服务器上注册_最新版Web服务器项目详解 00 项目概述

    点 击 关 注 上 方"两猿社" 设 为"置 顶 或 星 标",干 货 第 一 时 间 送 达. 互 联 网 猿 | 两 猿 社 TineyWebServer Linux下C++轻量级Web服务器,助 ...

最新文章

  1. oracle中备份package源码
  2. JS解析json数据并将json字符串转化为数组的实现方法
  3. [Elasticsearch] es 6.8 编译报错 invalid type code: 85
  4. 这个充电宝用起来好方便!
  5. php获取手机目录,PHP通过API获取手机号码归属地
  6. 百度十年,我从技术走到管理
  7. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了...
  8. 2021华为软挑赛题_思路分析——实时更新,做多少更多少(八)
  9. java图片透明化处理_java的图片背景透明及透明度处理
  10. [转载] 七龙珠第一部——第016话 寻找石头的功夫
  11. 微信小程序UI设计规范及文档模版
  12. xp系统怎么关闭wmi服务器,教你win10系统wmi服务器怎么关闭
  13. 台式计算机关机后自行重启,台式电脑关机后自动重启该怎么解决
  14. 蓝桥杯 试题 基础练习 圆的面积
  15. 最详细的工业网络通讯技术与协议总结解读(现场总线、工业以太网、工业无线)
  16. Windows网络笔记-台式机通过网线直连笔记本,台式机通过笔记本上网(win10)
  17. Android 9 红米4x,红米4X lineage16 安卓9.0 极致省电 纯净 完美root Xposed 经典版
  18. ps4饥荒联机版服务器未响应,《饥荒联机版》国服的正确打开方式,你get到吗?...
  19. 程序员应知必会的思维模型之 18 林纳斯定律 (Linus‘s Law)
  20. 过桥问题c语言代码大全,学而思奥数网奥数专题(行程问题)火车过桥c.pdf

热门文章

  1. MacW资讯:如何在Final Cut Pro X中安裝fcpx模板
  2. SHT11和SHT21传感器
  3. iptables 限制网速
  4. Win10与Win7 64位系统的CPU多线程调度差异
  5. RT-Thread_rt_kprintf()打印浮点数(解决方法2:添加rt_vsnprintf_full)
  6. 平台是怎么搭起来的(二)
  7. android——消息总线(Eventbus、FlowBus)
  8. Linux网络编程之sockaddr与sockaddr_in,sockaddr_un分析
  9. 计算机美工的专科学校,高职院校计算机专业网页美工设计教学.docx
  10. VHDL——4位移位寄存器