我正在用Java编写服务器。为了支持服务器的开发,我打算使用main()方法的一些类,这些类打算从命令行作为开发工具运行,以进行诸如诊断,模拟客户端连接和独立于其余模块的练习模块之类的工作。服务器。当前,这些类是主服务器项目的一部分。

构建项目以支持这些多个可执行工具的最佳方法是什么?我应该为这些模拟/加载/诊断工具创建单独的项目,还是将其保留在主服务器项目中?如果我将它们保留在主项目中,是否应该将项目配置为构建多个可执行jar或具有多个入口点的单个jar?如果使用单个jar,是否可以将服务器的主入口指定为默认入口?

最佳答案

除非服务器和实用程序具有完全不同的依赖关系,否则我将使其变得简单,并将所有内容放入一个jar中。提供shell脚本,这些脚本包装对相应类的调用:

# startServer.cmd
java -cp MyServer.jar;other.jar com.foo.myserver.Main

#showDiagniostics.cmd
java -cp MyServer.jar;other.jar com.foo.myserver.Diagnostics

您可以将其作为服务器启动类作为主要类的可执行jar,但是我发现拥有可执行脚本比使用java -jar MyServer.jar容易。

09-30 14:26
查看更多