iohao / ioGame

无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架;
http://game.iohao.com
GNU Affero General Public License v3.0
904 stars 201 forks source link

gradle 生成文档无法生成子路由问题 #258

Closed mokself closed 6 months ago

mokself commented 7 months ago

你的问题

由于IoGame21版本的文档生成变化,我生成的文档只能生成出subCmd=0的路由文档,于是我查阅了源码发现了问题

文档生成的核心代码就是构建ActionDoc类,调用这个类中的addActionCommandDoc方法可以添加子路由

public class ActionDoc {
    public ActionDoc(int cmd, Class<?> controllerClazz) {
        this.cmd = cmd;
        this.controllerClazz = controllerClazz;
    }

    public void addActionCommandDoc(ActionCommandDoc actionCommandDoc) {
        int subCmd = actionCommandDoc.getSubCmd();
        this.actionCommandDocMap.put(subCmd, actionCommandDoc);
    }
}

而这个ActionCommandDoc参数是通过查找action类的源代码中的各种信息得到的(具体代码在ActionCommandDocParser#buildSourceDoc中) code2png

其中有处关键代码如下 code1

通过图上这种反思找到源代码,结果可能不太理想,因为我使用的gradle编译路径build/classes下,所以找不到源代码。从而无法获取subCmd信息

但是即使无法获取源代码中的一些信息,这个subCmd是可以获取到的,并且已经在代码中获取到了,希望作者大大处理下

版本

iohao commented 7 months ago

好的

iohao commented 6 months ago

see https://github.com/iohao/ioGame/releases/tag/21.5