无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架; Java Netty Game Server.
GNU Affero General Public License v3.0
918
stars
205
forks
source link
将项目打包成 fat jar 并启动,框架会无法识别 action 所在位置的行数 #347
Closed
SaltedFishKnight closed 3 months ago
你的问题
根据 快速从零编写服务器完整示例,demo 使用 maven-assembly-plugin 打包成 fat jar,然后使用 -jar 方式启动 DemoApplication 时,显示的 action 所在类的位置行均为 1
在我自己的项目中,使用 maven-shade-plugin 打成 fat jar,再使用 -classpath 方式启动项目,存在同样的错误
预期值
期望的预期值
使用 IDEA debug 运行服务器时没有出错
实际值
在启动时, CMD 所显示的实际值
实际上,在 简单介绍 中也出现同样的错误
补充
出错的代码在 ActionCommandDocKit,底层是 File 的 exists()
DemoApplication 正确显示行数时的 debug 值
根据我的测试,以下两种情况都会令 DemoApplication 出错
1、以 jar 包方式启动时的 debug 值
2、路径存在空格时的 debug 值
当目录包含空格或者 jar 文件时,File 的 exists() 会返回 false,导致进入 continue 跳入下个循环,而不是执行 javaProjectBuilder.addSourceTree(file),导致 ActionCommandDoc 的 classLineNumber 字段,将使用默认值 1
版本