我在Maven项目中有三个模块:
parent
rest-api # Spring REST API
web-client # AngularJS web client
application # Project to bundle it all up for a standalone
我不确定我是否有#34; 优雅"解决方案所以,如果完全垃圾,请用棍子打我,但这是它的工作原理 - 或它应该如何工作:
模块rest-api
只提供REST API和其他核心功能 - 基本上它是纯服务器代码。这是一个jar
神器。
要分离客户端和服务器代码,我有模块web-client
。它是一个war
项目,用于保存客户端Web应用程序。
这个模块应该把它全部搞定。这取决于rest-api
和web-client
。它做了两件重要的事情:
spring-boot-maven-plugin
构建一个独立的可运行jar
- 我的最终目标main(String args[])
@SpringBootApplication
的{{1}}方法
醇>
我目前能够告诉Eclipse在servlet容器中运行它。服务器启动,我的两个资源, rest-api 和 web-client 正常工作。到目前为止,一切都很好。
什么不完全有效是独立的。如果我打包整个事情并运行服务器:
SpringApplication.run(EasyModelAccessServer.class, args);
只有REST API才有效。原因是因为 web-client 没有添加或作为Web应用程序引入Spring内置Tomcat。
是我如何使这项工作。我想到了两种选择:
$ path/to/application: mvn clean package
$ path/to/application: java -jar target/application.jar
文件隐藏到web-client.war
中,以便它可用作资源并以编程方式调用application.jar
(或类似内容)来加载其他服务tomcat.addWebapp("/web-client", "path/to/web-client.war")
或另一个Spring Maven插件能够为我做到这一点并找到一个将我链接到示例的人。我已尝试过1.但我没有成功将spring-boot-maven-plugin
移至web-client.war
,但我也不确定是否应该这样做。
问:" 为什么要将所有这些模块分开,而不是将所有这些模块合并到application.jar
模块中,其中Spring Maven插件可以为您完成所有操作开箱即用?"
答:我真的想将客户端代码与服务器代码分开。我可以然后将server
合并到web-client
但是上次我尝试过我还有其他10个问题,为什么这个问题没有成功,所以我决定保持这种方式并且它实际上不应该加载额外的服务器资源。
问:" 我可以看看这个项目吗?"
A:是的,你可以。请看一下:https://github.com/silentsnooc/easy-model-access请原谅我,我目前正在使用标签而不是空格 - 一旦我完成所有操作,我就会改变它。