java-客户端/服务器项目结构,文件夹结构,构建文件等
作者:互联网
我正在编写一个客户端和服务器应用程序.现在,我只是自己开发它,所以我将其编写为一个Eclipse项目,并组织成Java程序包(org.myorg.server,org.myorg.client,org.myorg.networksystem等).该项目将部署到单个jar文件.然后,客户端是一个applet,因此我只需将jart文件中的applet代码参数指向org.myorg.client.ClientApplet,而当我运行服务器时,它是一个命令行应用程序,我只运行:
java -jar MyJar.jar
org.myorg.server.ServerApplication
好吧,我需要清理它的结构并改善构建过程.我还想分离jar文件,以使用户无法像现在一样访问jar文件中内置的服务器副本.
我想使用一个连续集成服务器,例如CruiseControl.如果只需要将我的代码检入SVN存储库中,那将非常酷.然后,CruiseControl服务器将获取代码,将其编译并打包到单独的jar中,然后将服务器jar部署到我的专用服务器上并运行它,还将客户端jar部署到我的Web服务器上,以便更新小程序.
我可以弄清楚CruiseControl.我当前的问题是如何分离代码.它被很好地分为客户端和服务器程序包,但是还有一些共享程序包,例如网络协议.我应该将我的项目分为3个分别用于客户端,服务器和公共项目的项目吗?我还应该做点别的吗?我当时正在考虑手动编写Ant构建文件,但是我真的很想留在Eclipse中.
我如何最好地组织代码来实现这些目标?
(顺便说一句,如果这个问题令人困惑,对不起,我想我很难把所有不同的问题都说出来)
解决方法:
如果似乎您已经知道需要做什么,但是,如果希望CruiseControl编译和打包代码,则将需要使用诸如Ant之类的工具,或可能的Maven、Gradle之类的工具,或其他某种构建工具,以便让它做您想要的.即使您拥有构建工具包中的代码,您仍然可以使用Eclipse来构建和运行所有内容.
我不确定您对Ant有多熟悉,但是使用Ant将使您对构建过程有更多的控制权,但需要定义该过程.其他工具(例如Maven和Gradle)具有规定的代码结构方式,可减少构建的配置量,在Maven的情况下,我不确定是否可以更改项目布局的期望方式.另一方面,Gradle可以更改其默认值.
就组织而言,我认为将代码分为客户端,服务器以及客户端和服务器共享的网络协议,就像您提到的那样.我不使用Eclipse,所以我不确定该怎么做.您可以将客户端和服务器打包到单独的JARS中,同时将其包含来自网络协议模块的类文件,或者仅制作三个JARS.
标签:eclipse,client-server,continuous-integration,java 来源: https://codeday.me/bug/20191024/1919471.html