小薇聊天机器人用 MyEclipse 部署上线 SOP 教程

本贴最后更新于 2991 天前,其中的信息可能已经渤澥桑田

#背景
近期把 D(丁亮)上线的小薇聊天机器人玩 HIGH 了。由于 D 写的文档还没有特别详细,因此本着开放、自由的分享的精神,在此就用 SOP 的方式,给小白们普及一下小薇是如何一步步部署上线。
#SOP
##一、下载小薇源代码
1.首先登录“黑客派”论坛 https://hacpai.com/
2.找到 D 的帖子(D 的头像是路飞,很好认),点击路飞的头像
QQ 截图 20160729232728.png
3.找到小薇的帖子
QQ 截图 20160729232937.png
4.点击“ XiaoV ”的链接,定位到 GitHub
QQ 截图 20160729233037.png
5.在 D 的 GitHub 上 ,点击 Clone or download 这个按钮
QQ 截图 20160729233224.png
6.点击 Download ZIP 这个按钮
QQ 截图 20160729233409.png
##二、导入小薇的工程文件
7.把 xiaov_master 压缩包解压到你的 MyEclipse 工程目录下
QQ 截图 20160729234012.png
8.然后打开 MyEclipse
(什么?你没有 MyEclipse ?那么再见!)
QQ 截图 20160729234347.png
9.在 MyEclipse 中的 File 菜单中点击 Import
未标题-1.jpg
10.在 Import 选项卡的 Select an import source 中输入 maven ,并选择 Exisiting Maven Projects
QQ 截图 20160729235019.png
11.在下一步操作中,点击 Browse... 按钮,将目录定位到 JAVA 工程中的 xiao-master 上并点击 Next 按钮
QQ 截图 20160729235333.png
12.看到这个画面后直接点击 Finish
QQ 截图 20160729235526.png
13.然后你会看到右小角的滚动条在跑呀跑,等等吧亲!去泡杯茶,或者喝杯咖啡。
QQ 截图 20160729235701.png
14.跑完后,你会发现,小薇的工程目录前面有个感叹号,一定是哪里出了问题
QQ 截图 20160729235948.png
15.右键点击这个工程,选择 Build Path -> Configure Build Path...
QQ 截图 20160730000124.png
##三、安装 JDK1.7 环境
16.可以看到原来是没有 jdk1.7 ,别急,点这里下载,密码:k4ms
QQ 截图 20160730000349.png
17.装一下 jdk1.7 ,很快的哈
QQ 截图 20160730000935.png
18.装好了,那么我们再回到 Build Path -> Configure Build Path... ,点击 Libraries 选项卡,再点击 Edit...
QQ 截图 20160730001114.png
19.选择 Alternate JRE ,再点击 Installed JREs...
QQ 截图 20160730001236.png
20.点击 Add...
QQ 截图 20160730001348.png
21.选择 Standard VM ,点击 Next
QQ 截图 20160730001438.png
22.将 Directory... 定位到刚才 jdk1.7 的安装目录下,再点击 Finish
QQ 截图 20160730001603.png
23.回到前一个对话框,选择 jdk1.7 ,点击 OK
QQ 截图 20160730001800.png
24.再回到前一个对话框,点击 Execution environment (这时可以看到已经有 jdk1.7 的环境了),再点击 Finish 按钮,OK
QQ 截图 20160730001913.png
##三、部署小薇服务
25.这时候可以看到,小薇的工程已经没有报错了
QQ 截图 20160730002107.png
26.为了确保小薇依赖的包都准确无误,我们可以在工程目录上点击右键,然后 Run As -> Maven install
QQ 截图 20160730002438.png
27.可以看到 Maven 在控制台输出了 BUILD SUCCESS 的信息,OK
QQ 截图 20160730002655.png
28.接下来,我们要把小薇部署到 Tomcat 上,点击 MyEclipse 上的 Deploy 按钮,在弹出的对话框中点击 Add 按钮
PS:D 用的是 Jetty,但我还是比较习惯用 Tomcat 呵
QQ 截图 20160730002849.png
29.选择 MyEclipse Tomcat ,点击 Finish
QQ 截图 20160730003122.png
30.回到上一个对话框,可以看到 Successfully deployed. 的提示,点击 OK
QQ 截图 20160730003258.png
##四、运行小薇服务
31.接下来,点击 MyEclipse 上服务器按钮旁边的小三角形,选择 MyEclipse Tomcat -> Start
QQ 截图 20160730003453.png
32.可以看到,控制台中输出了小薇启动的信息
QQ 截图 20160730003645.png
33.找到控制台告诉你的二维码所在的目录,打开,用手机 QQ 扫它吧
QQ 截图 20160730003829.png
34.这时候,你看到了控制台输出了一堆错误信息
QQ 截图 20160730004120.png
35.别着急,根据提示,我们打开 w.qq.com,先扫扫看吧
QQ 截图 20160730004002.png
36.可以正常登录网页版 QQ,那么,退出吧!
QQ 截图 20160730004533.png
37.再回到 MyEclipse ,把服务跑起来!这时候发现小薇已经可以读取到 QQ 群号了
QQ 截图 20160730004737.png
38.什么?还是有出错信息?
QQ 截图 20160730004907.png
##五、开始调戏小薇
39.安啦!这是正常的,只要有人敢在群里叫小薇,她就会开始瞎扯淡啦!不信你看!
QQ 截图 20160730005141.png
40.同时你也可以打开小薇的 QQ,看她实时的扯淡能力啦,QQ 的界面我就不截图了
PS:你眼神很犀利,看到了 1202 的返回错误码,这个是因为我的小薇被人禁言了- -!!
最后,如果需要修改小薇的名称,可以在工程中的 resources 目录下,找到 xiaov.properties ,打开后修改 qq.bot.name 的值,这个就是小薇的名称啦!
QQ 截图 20160730005418.png
##六、写在最后
最后的最后,请大家一定要尊重 D 的劳动成果,小薇有一个随机函数,偶尔会发一下“黑客派”论坛的广告,请大家务必不要屏蔽!

现在就去访问黑客派论坛!

--END--

  • 黑客派

    黑客派是 B3log 开源社区的线上论坛,这里主要汇聚了程序员和设计师。HacPai 分别取 Hacker / Painter 的头三个字母组成,源自《黑客与画家》。

    359 引用 • 4761 回帖 • 511 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 742 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    这个文件从你本地 mvn 仓库删了重新构建就行

    1 回复
  • 其他回帖
  • destiny0

    麻烦问一下,你启动项目的 pom 文件和 github 上的文件是一样的吗?为什么没有遇到报错?启动就报 java.lang.ClassNotFoundException: org.b3log.xiaov.XiaoVServletListener 这个错误。在 pom 中加上这个依赖后就报这个错误。
    org.b3log
    latke
    2.2.10

    错误:java.lang.ClassNotFoundException: com.scienjus.smartqq.callback.MessageCallback。有点不懂来请教一下,谢谢~(≧▽≦)/~

  • luffy2333

    请问对 xiaov-master Run on server 之后返回 The requested source is not available 是什么原因呀(我在 eclipse 上用的)

  • someone

    各种错误
    八月 25, 2016 12:21:15 下午 org.apache.catalina.core.ContainerBase addChildInternal
    严重: ContainerBase.addChild: start:
    org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xiaovvv]]

  • 查看全部回帖
relyn
永远相信美好的事情即将发生 福州

推荐标签 标签

  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • abitmean

    有点意思就行了

    29 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 733 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 376 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1513 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 261 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3574 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 633 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 175 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    125 引用 • 169 回帖 • 1 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    351 引用 • 1814 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 43 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 302 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 399 关注
  • CodeMirror
    1 引用 • 2 回帖 • 129 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 27 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 531 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 167 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 638 关注