iohao / ioGame

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

Home Page:http://game.iohao.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JProtoBuf maven 预编译配置错误

KING754 opened this issue · comments

commented

你的问题

在使用iogame-example时
按现在示例直接进行打包,可以正常打包。
但是:example-springboot/spring-common-pb/target/temp目录下并不会生成编译之后的文件。

看了JProtoBuf的配置说之后,发现如下处配置有错:

<configuration>
    <!-- 注意,这里配置了两个包名,JPB要求多个包名使用";"进行分隔 -->
   <filterClassPackage>com.iohao.game,com.iohao.game.spring.common.pb</filterClassPackage>
   <generateProtoFile>true</generateProtoFile>
   <compileDependencies>true</compileDependencies>
</configuration>

改成如下之后:

<configuration>
    <!-- 注意,这里配置了两个包名,JPB要求多个包名使用";"进行分隔 -->
   <filterClassPackage>com.iohao.game;com.iohao.game.spring.common.pb</filterClassPackage>
   <generateProtoFile>true</generateProtoFile>
   <compileDependencies>true</compileDependencies>
</configuration>

example-springboot/spring-common-pb/target/temp目录,有生成的文件了。
但是报错。

[WARNING] 
java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:118)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at com.baidu.jprotobuf.mojo.PreCompileMojo$1.run (PreCompileMojo.java:322)
    at java.lang.Thread.run (Thread.java:1583)
Caused by: jodd.io.findfile.FindFileException: Scan entry error: EntryData{com.iohao.game.action.skeleton.ext.spring.ActionFactoryBeanForSpring$Holder'}; <--- java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextAware
    at jodd.io.findfile.ClassFinder.scanEntry (ClassFinder.java:377)
    at jodd.io.findfile.ClassFinder.scanJarFile (ClassFinder.java:268)
    at jodd.io.findfile.ClassFinder.scanPath (ClassFinder.java:237)
    at jodd.io.findfile.ClassFinder.scanPaths (ClassFinder.java:178)
    at jodd.io.findfile.ClassScanner.scan (ClassScanner.java:35)
    at jodd.io.findfile.ClassScanner.scanDefaultClasspath (ClassScanner.java:28)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain.main (JprotobufPreCompileMain.java:150)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at com.baidu.jprotobuf.mojo.PreCompileMojo$1.run (PreCompileMojo.java:322)
    at java.lang.Thread.run (Thread.java:1583)
Caused by: java.lang.Exception: org/springframework/context/ApplicationContextAware
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain$1.onEntry (JprotobufPreCompileMain.java:145)
    at jodd.io.findfile.ClassFinder.scanEntry (ClassFinder.java:375)
    at jodd.io.findfile.ClassFinder.scanJarFile (ClassFinder.java:268)
    at jodd.io.findfile.ClassFinder.scanPath (ClassFinder.java:237)
    at jodd.io.findfile.ClassFinder.scanPaths (ClassFinder.java:178)
    at jodd.io.findfile.ClassScanner.scan (ClassScanner.java:35)
    at jodd.io.findfile.ClassScanner.scanDefaultClasspath (ClassScanner.java:28)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain.main (JprotobufPreCompileMain.java:150)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at com.baidu.jprotobuf.mojo.PreCompileMojo$1.run (PreCompileMojo.java:322)
    at java.lang.Thread.run (Thread.java:1583)
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
    at java.lang.ClassLoader.defineClass1 (Native Method)
    at java.lang.ClassLoader.defineClass (ClassLoader.java:1027)
    at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:150)
    at java.net.URLClassLoader.defineClass (URLClassLoader.java:524)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:427)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:421)
    at java.security.AccessController.doPrivileged (AccessController.java:714)
    at java.net.URLClassLoader.findClass (URLClassLoader.java:420)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:593)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at java.lang.Class.getDeclaredFields0 (Native Method)
    at java.lang.Class.privateGetDeclaredFields (Class.java:3473)
    at java.lang.Class.getDeclaredFields (Class.java:2542)
    at com.baidu.bjf.remoting.protobuf.utils.FieldUtils.findMatchedFields (FieldUtils.java:198)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain$1.onEntry (JprotobufPreCompileMain.java:129)
    at jodd.io.findfile.ClassFinder.scanEntry (ClassFinder.java:375)
    at jodd.io.findfile.ClassFinder.scanJarFile (ClassFinder.java:268)
    at jodd.io.findfile.ClassFinder.scanPath (ClassFinder.java:237)
    at jodd.io.findfile.ClassFinder.scanPaths (ClassFinder.java:178)
    at jodd.io.findfile.ClassScanner.scan (ClassScanner.java:35)
    at jodd.io.findfile.ClassScanner.scanDefaultClasspath (ClassScanner.java:28)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain.main (JprotobufPreCompileMain.java:150)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at com.baidu.jprotobuf.mojo.PreCompileMojo$1.run (PreCompileMojo.java:322)
    at java.lang.Thread.run (Thread.java:1583)
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextAware
    at java.net.URLClassLoader.findClass (URLClassLoader.java:445)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:593)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at java.lang.ClassLoader.defineClass1 (Native Method)
    at java.lang.ClassLoader.defineClass (ClassLoader.java:1027)
    at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:150)
    at java.net.URLClassLoader.defineClass (URLClassLoader.java:524)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:427)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:421)
    at java.security.AccessController.doPrivileged (AccessController.java:714)
    at java.net.URLClassLoader.findClass (URLClassLoader.java:420)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:593)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at java.lang.Class.getDeclaredFields0 (Native Method)
    at java.lang.Class.privateGetDeclaredFields (Class.java:3473)
    at java.lang.Class.getDeclaredFields (Class.java:2542)
    at com.baidu.bjf.remoting.protobuf.utils.FieldUtils.findMatchedFields (FieldUtils.java:198)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain$1.onEntry (JprotobufPreCompileMain.java:129)
    at jodd.io.findfile.ClassFinder.scanEntry (ClassFinder.java:375)
    at jodd.io.findfile.ClassFinder.scanJarFile (ClassFinder.java:268)
    at jodd.io.findfile.ClassFinder.scanPath (ClassFinder.java:237)
    at jodd.io.findfile.ClassFinder.scanPaths (ClassFinder.java:178)
    at jodd.io.findfile.ClassScanner.scan (ClassScanner.java:35)
    at jodd.io.findfile.ClassScanner.scanDefaultClasspath (ClassScanner.java:28)
    at com.baidu.jprotobuf.mojo.JprotobufPreCompileMain.main (JprotobufPreCompileMain.java:150)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at com.baidu.jprotobuf.mojo.PreCompileMojo$1.run (PreCompileMojo.java:322)
    at java.lang.Thread.run (Thread.java:1583)
[INFO] JProtobuf pre compile done time took: 1449ms

版本

  • ioGame version: 21.4

你好,示例相关的请移步到 https://github.com/iohao/ioGame-example