问题描述
我是Spring Boot / Gradle的新手,所以如果我说错了,请随时纠正我。
我有两个Spring Boot项目,我正在使用Spring Boot Gradle插件在不同的端口中一个一个地运行,并生成相应的jar。
我想知道是否有可能生成一个可以在不同端口运行两个项目的胖子。
这是我的项目的结构:
项目
-
setting.gradle
-
Project-1
- src /.../@ SpringBootApplication主页
- build.gradle
-
Project-2
- src /.../@ SpringBootApplication Main2
- build.gradle
我在set.gradle中包含了两个项目,在Project-1的依赖项中包含了Project-2,并尝试了gradle clean build
,但是在Project-1中生成的胖子不包含Project-2的罐。我的期望是,当我运行胖子缸时,它将在各自的端口中暴露两个项目,就像我对每个项目进行了gradle bootRun
。
我在做什么正确?我假设将Project-2放在Project-1的依赖项中,可以使gradle创建我想要的胖子。
或者那是不可能的,我只需要使用给我的两个罐子?
谢谢您的时间。
解决方法
您可以在同一个tomcat实例后面部署两个单独的jar,以获得相同的结果。假设如果将my-first-jar.jar
和my-second-jar.jar
部署在tomcat的后面,则会得到两组端点,例如:
http:// localhost:8080 / my-first-jar / apis-from-first-jar
http:// localhost:8080 / my-second-jar / apis-from-second-jar
但是,似乎您无法正确创建胖子。默认情况下,项目的依赖项不包含在jar中。您需要明确地对构建工具(在您的情况下为gradle)说一个胖子。看看here
一旦创建了Project 1的胖子罐,它也将具有来自Project 2的文件,但是您将只能运行单个spring boot应用程序。
PS:如果您愿意,您可以在一个容器应用程序中运行多个应用程序。看看here,但不建议您走那条路,因为它很杂乱