游戏服务器端打为了一个war包。
这次做项目时,希望将游戏中的通用模块及通用业务模块拆分至一个公共项目中,然后每个游戏可以分别建立一个项目来引用公共项目,可以只需要写业务逻辑,而不再需要关心其它的方面。
2013.11.06 记:
其实前几天已经解决掉了最后一个遇到的问题:这里还要感谢run jetty插件的作者。
现在开始动手进行项目改造:
- 这里核心工程定义为xcore,定义依赖工程文件xcore-dep,提供用来进行编译所需要的类。
- 定义另一个工程xcore-game,该工程为实际发布的游戏包。这里放在这里是为了调试xcore工程。以后开发新游戏时,直接复制xcore-game包即可。
- 定义第三个工程xcore-moon,测试工程,用来测试更为复杂的功能。(这个等前两个工程完工后再完成).
- 先在xcore工程下尝试运行看看能否运行。mvn、jetty:run及jetty:run-war。全部运行通过。
- 在xcore中的pom.xml中添加以下代码,用来生成xcore中的包含类的jar包
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <attachClasses>true</attachClasses> </configuration> </plugin
- 在xcore-game工程中修改pom.xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <useCache>false</useCache> <workDirectory>target/overlay-war-folder</workDirectory> <overlays> <overlay> </overlay> <overlay> <groupId>cn.XXXXX</groupId> <artifactId>xcore</artifactId> </overlay> </overlays> </configuration> </plugin>
- 运行xcore-game工程,遇到以下错误
[ERROR] Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' d efined in file [D:\workspace\xcore-game\target\tmp\webapp\WEB-INF\classes\applic ationContext-mybatis.xml]: Initialization of bean failed; nested exception is ja va.lang.NoSuchFieldError: NULL: java.lang.NoSuchFieldError: NULL at org.springframework.expression.TypedValue.<clinit>(TypedValue.java:31 )
打开生成的war包,发现里面spring-expression引入了两个不同的版本,修改pom.xml将旧版本排除掉。OK,顺利解决问题。
- 奇怪,前几天明明ren jetty插件可以正常运行,现在竟然跑不起来了。有空再查吧,先用jetty:run-war凑活。
- run jetty插件失效的原因找到了,在原工程里面mvn可以成功编译工程,现在新的工程中,依赖eclipse编译源码,mvn无法成功编译源码,无法编译的原因后续再查。(原因查找到了,原来我是copy过来的pom.xml,里面的包名没有修改导致的)
0 条评论。