我是Spring Boot / Gradle的新手,所以如果我说错了,请随时纠正我。
我有两个Spring Boot项目,我正在使用Spring Boot Gradle插件在不同的端口中一个接一个地运行,并生成相应的jar。
我想知道是否有可能生成一个可以在不同端口运行两个项目的胖子 jar 。
这是我的项目的结构:
项目
我将两个项目都包含在setting.gradle中,将Project-2包含在Project-1的依赖项中,并尝试了
gradle clean build
,但是在Project-1中生成的胖 jar 不包含Project-2的 jar 。我的期望是,当我运行胖子jar时,它将在各自的端口中暴露两个项目,就像在每个项目上执行gradle bootRun
一样。我在做什么对吗?我假设将Project-2放在Project-1的依赖项中,gradle可以创建我想要的胖子。
还是那不可能,我只需要使用发给我的两个 jar ?
感谢您的时间。
最佳答案
您可以在同一个tomcat实例后面部署两个单独的jar,以获得相同的结果。假设如果在tomcat后面部署my-first-jar.jar
和my-second-jar.jar
,您将获得两组端点,例如:
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的胖子 jar ,它也将具有来自Project 2的文件,但是您将只能运行单个spring boot应用程序。
PS:如果您愿意,您可以在一个容器应用程序中运行多个应用程序。看看here,但不建议您沿着那条路走,因为它杂乱无章
关于spring-boot - 是否可以使用@SpringBootApplication main制作一个带有两个spring boot应用程序的胖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64502011/