这个例子是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. “;“分号空语句的使用
  2. C# using 语法说明
  3. 使用mac 终端利用alias设置快捷命令
  4. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )
  5. 由return联想到的
  6. 地区的json数据_数据密集型系统基础:数据模型与查询语言
  7. 优化LibreOffice如此简单
  8. windows下curl
  9. 泽元网站内容管理系统 (简称ZCMS)
  10. java顺序表和树的实现
  11. Linux命令行操作快捷键及技巧
  12. python wraps模块_python functools.wraps装饰器模块
  13. python文本查重_GitHub - LiuYinCarl/check_homework: 文本查重工具
  14. 机器学习笔试面试整理
  15. Android app接入微信人脸支付详解
  16. 第二周教学课件及实验任务已发布!
  17. 软件工作量评估方法(一)
  18. 微信小程序getUserProfile,获取头像和昵称实现登录
  19. 北京近期校园招聘java_JAVA研发工程师-校招,北京
  20. 德巴赫猜想python_哥德巴赫猜想问题基于Python的验证方法研究

热门文章

  1. 华为服务器网卡驱动安装文件夹,服务器网卡驱动安装
  2. 一周快讯【第43期】| 机智云受ST邀请参加2018上海慕尼黑电子展
  3. php与java的des加密解密
  4. 电脑Healthboost注册机
  5. SaaS软件商需要什么样的云计算
  6. 即将开源,码晒客/疯狂创意二维码,个性二维码底层。
  7. 可替换商业软件的开源免费软件集总
  8. 怎样同时查询多个苏宁快递单号的物流信息
  9. 企业公司网站模板 免费下载
  10. 点菜java_java点菜系统代码