一些小伙伴们经常问Tigase8 check下来的源代码怎么跑起来,因为我不能及时一 一回答,所以还是写个博文来演示一下吧,一般针对新手而言,老手的话,就跳过吧!

一、一般第一步是进入tigase的官网,选择你想要下载的模块 :

https://tigase.tech/favorite_projects/search

复制仓库链接 https://git.tigase.tech/tigase-server.git 到IDEA ,准备git 拉取 下来

点击clone ,等待会就下载成功:

一般下载代码后,第一步就是进行项目配置设置 Tigase8是依赖是JDK8及以上,看到右边第五步那,我们只要留下src/main/java 这源码项就可以,其它的可以点X移除,不需要的暂时不让它参与编译

现在展开代码看下,发现有些类可以由于没有导入 相应的包而出现报错,这时候可能有些同学开始慌了,别担心,如下图只是没有成功导入tigase-utils.jar 才会出现找不到类的错误,那我们就去看看原因,问题就是在maven ,那么我们不防先执行下maven install

在执行maven后如果没能成功下载包时,则不防在pom.xml里为它加入tigase私有仓库如下:现在再点击 install 进行下载,如果还是下载不下来,再试试去进入你本地的maven库中,删除要下载的对应的版本文件目录

    <repositories><repository><id>tigase</id><name>Tigase repository</name><url>http://maven-repo.tigase.org/repository/release</url></repository><repository><id>tigase-snapshot</id><name>Tigase repository</name><url>http://maven-repo.tigase.org/repository/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository></repositories>

点击install 后,顺利地下载所有依赖的包下来了,如图所示,已经没有再报错了,OK,进展很顺利!

二 、不防先试着去运行下源代码吧:快速去找到XMPPServer 主入口类,运行,啊怎么会跑到Groovy的代码,别慌,我这里是故意演示下这样的错误,很多同学之前问到。不用想问题一定在配置里了,我们应该移除Groovy模块,不让他参与编译。

点开配置项,移除不需要的模块,如图X所示:

再次点击运行,wo ?配置文件我都没动怎么就运行成功了,别慌,这可是使用默认的配置项,都没有读取到数据库表信息,所以才会成功跑起来了

从提示里可以看出,它默认加载的配置文件是 : etc/init.properties,如果你不想在JVM启动配置项里加入 对应配置来改变这个默认参数项,最简单的就是拷贝一个配置文件,改个名字放到etc目录下去呗,多省事。如我选择mysql数据库,那么我就拷贝一个init-mysql.properties,改名为init.properties

看到新增加的init.properties文件,及里面的配置

再次运行XMPPServer后,会发现熟悉的错误出现了,就是找不到Mysql 驱动,这就对了,说明还得加入mysql-connector-java.jar ,那就改下pom.xml吧 加入 如下:

 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version><!--<scope>test</scope>--></dependency>

有些眼快的同学可能会有疑问?明明加入init.properties,运行过后怎么变成init.properties.old了,这是简单说明下,其它从8开始,Tigase官方推荐的配置文件格式改了,他自动帮你把init.properties里的配置转换到config.tdsl文件里了,所以别慌,要是老用户,你也还可以选择properties配置,让他自动帮你转,不然去官方那看下他8的配置文件指导也是极其简单滴!

如果Tigase的数据库导入了数据成功的话,这里跑起来应该是成功,可能结束了,但也有可以数据导入的问题,出现一些奇怪的问题,演示下:

上文的报错提示:系统要求的版本为0.0.0,而我们的是8.0.0, 看到这错误,这不是很矛盾嘛,但别慌,一定是哪里配置少了,或者少操作了哪一步 !

分析开始 :由于我是手动导入数据脚本的,所以我坚信我的数据库现在是完整的,一定没问题。这里插入下怎么导入呢:如下图里的红圈,你点开里面一个个文件都从小版本一直执行完到8.0.0,相信你应该会SQL就不多说了,后面我会附上一份导出的脚本 文件。

提醒下有些同学可能会按着脚本从头到尾导入,但为什么会遇到出错的导不进去呢,其实有个脚本里面是有个BUG的,如mysql-server-8.0.0-sp.sql 中

基于我的经验,数据库导入没有问题了,那为什么还报版本与期望的不一致的错误呢,这个时候来个大招,直接看下报错的源代码吧:

原来这里Tigase读取打包的jar上的包版本号,但是这里打包没有加上版本号嘛,即是运行的tigase-server.jar 所以就读不到包上的版本号嘛,默认0.0.0,我这里就不管了,直接在下面设置下为8.0.0,与数据库配置的版本号一致就行了,跳过这个版本检查

其实这里还可以选择一种做法,也就是运行  tigase.db.util.SchemaManager "upgrade-schema" --config-file=etc/config.tdsl  这样系统去执行脚本 ,由于我选择的是手动导入脚本到数据库,所以我不跑这步了,你们可以试试。

但无论怎么样,现在他默认读取运行jar包上的版本号和数据库上的版本进行匹配,出现问题直接定位到这里纠正就行!

三、再次执行XMPPServer 运行main ,发现版本检查的问题没有出现了,但可能又出现的另一个问题,但别慌,这个看提示就很清晰了,SessionManager 组件中 max-queue-size 配置小了,它让你配置大些,为什么有人可以有人不行,现在这个配置项是动态的,根据你CPU核数来要求配置最小值,简单,就配置下嘛:

修改config.tdsl文件,如下图:

 

再次运行 ,一切顺利跑起来拉:

这个时候,开始使用spark去验证下,服务是否可用了对吧,握草,这平时群里问题的最多就这问题了,怎么启动服务就是访问不到呢:

其实呀,问题就在你的  default-virtual-host 配置项上,这个时候不防先看下 etc\config-dump.properties 如果这个文件中系统使用默认的域名为你的主机名,而你这里的配置又不是主机名,一般就会出现这样的问题了

那就改为主机名吧,这改为了llooper,

这个时候,应该 是没什么问题了吧,再来验证下 ,启动系统,验证一下注册用户test:

登录用户 :

启动服务,登录都成功了,大功告成 !其实这个没什么难度的,就是出现什么问题,就解决它,要有耐心!

对了,本来想附上一份,tigase-server.sql 这里上传不了附件,那我就上传到群里的文件里去吧,有需要的同学在群文件里找,tigasedb_8.sql

闲的时候,写写文档,一起进步吧。有什么问题在群里问,但是有时候可能没时间回复,见谅!

IDEA 上 Tigase8.0 源代码编译运行相关推荐

  1. Android 6.0 源代码编译实践

    前阵子去上海参加 Android 开发面试,被问及了 Android 的基本原理.常用组件背后的实现机制.设计模式等问题,我都回答地不好.面试时,老司机们常常问我对知识点"背后的实现代码有没 ...

  2. blender源代码编译运行

    其实在blender官网上已经给出了编译步骤https://wiki.blender.org/wiki/Building_Blender/Windows,由于在源码编译的过程中还遇到了很多问题,特此记 ...

  3. VS Code:使用VS的cl.exe编译运行C/C++程序

    1. 背景   VS Code只是一个代码编辑器,编译运行c/c++程序需要自己配置编译器.现不想使用MinGW的gcc或g++编译程序,而电脑本身有VS,故希望使用VS自带的cl.exe来进行编译. ...

  4. [转]Sublime Text 2 C++编译运行简单配置

    原文链接:http://blog.163.com/double_dua/blog/static/18973918320126124432099/ sublime Text 2 是一个强大的跨平台的文本 ...

  5. ACE6.2.0在vs2010上编译运行(win7)

    官网下载源码 vs2010打开解决方案 VC10.sln 选择ace点生成 dubug版和release版 使用时注意: debug版的应用程序使用dubug版的ace库 release版的使用rel ...

  6. Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0

    当我第一次使用Linux时,我想要做的第一件事就是安装GPU版本Tensorflow.我找到了一个很好的指南.但即使考虑到这一点,我也花了超过40个小时的安装.这篇文章我想节省你的时间,分享自己的经验 ...

  7. 从源代码编译安装 Mono 2.4 和 MonoDevelop 2.0

    虽然现在几乎所有的Linux发行版都预置了Mono软件,但是大多数都比较旧,因此要体验最新版本的Mono,还是要用源代码自己进行编译安装的. 先说几句废话,Mono 2.4 提供了.Net 3.5 的 ...

  8. 在windows上用源代码编译安装MPlayer

    转自:http://www.cnblogs.com/smallmuda/archive/2009/03/31/1425976.html 在windows上用源代码编译安装MPlayer 作者:心情花园 ...

  9. 在Windows 11上从源代码编译Fritzing分步指南

    在Windows 11上从源代码编译Fritzing分步指南 发表六月 2, 2022分类为命令行, DIY 编译, 视窗 原文浏览 您是否希望最新版本的Fritzing for Windows完全免 ...

最新文章

  1. 用友云微服务架构下配置文件管理利器:配置中心
  2. 用Adapter模式重构以前系统的登录权限验证
  3. JavaScript from C#(入门篇)
  4. oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)
  5. 被问哭了,一位小姐姐的阿里面经!(附部分答案)
  6. C++|Java混合实验-java搭建post方法靶场,Qt发送请求获取数据
  7. iPhone 12系列重新上架苹果天猫旗舰店,5499元的iPhone 12今晚开订!
  8. JAVA多线程共享变量的可见性
  9. Scala之flatMap操作
  10. Listary Pro - 能极大幅度提高你 Windows 文件浏览与搜索速度效率的「超级神器」...
  11. ThinkPHP的CURD操作
  12. 《研磨设计模式》builder生成器模式(golang)
  13. drozer的安装与模拟器连接
  14. 【FI-AP】预付定金处理(Down payment)
  15. [经验教程]拼多多直接免拼是什么意思?
  16. 汽车租赁小项目(java)
  17. 家用路由器常见之基本概念
  18. root账号无法通过SSH登录阿里云ECS
  19. 华为电脑Linux进pe,华为 matebook X Pro怎样用PE重装系统win10
  20. css实现文字或者div盒子水平垂直居中的方法

热门文章

  1. 《C#类设计手册》读书随笔
  2. MySQL性能测试——tpch工具
  3. 旅行社怎么做好私域流量
  4. 2022年导游资格全国导游基础知识考试每日一练及答案
  5. DataGridView 使用精华
  6. 【uni-app】云开发的增删改查CRUD(个人封装)
  7. vue中如何使用echarts——以折线图为例
  8. 排序算法稳定性的意义
  9. java仿射密码加解密实现,仿射密码-Affine cipher
  10. 职场智慧:10部电影教你6大沟通术