当前位置: 首页 > 知识库问答 >
问题:

有没有可能让一个胖罐子里有两个Spring启动应用程序,每个里面都有@SpringBootApplication main

元景天
2023-03-14

我对spring boot/gradle完全陌生,所以如果我说错了什么,请随时纠正我。

我有两个Spring启动项目,我正在使用Spring Boot Gradle Plugin在不同的端口上一个接一个地运行,并生成各自的jars。

我想知道是否有可能生成一个胖jar,可以在不同的端口上运行这两个项目。

以下是我的项目结构:

项目

>

  • setting.gradle

    项目-1

    • src//@SpringBoot应用程序主界面
    • 建造。格拉德尔

    项目-2

    • src//@SpringBootApplication Main2
    • 建造。格拉德尔

    我把这两个项目都包括进去了。gradle,Project-1的依赖项中的Project-2,尝试了gradle clean build,但Project-1中生成的胖jar不包括Project-2的jar。我所期望的是,当我运行fat jar时,它会在各自的端口中公开这两个项目,就像我在每个项目上运行了gradle bootRun

    我做的对吗?我假设将Project-2放在Project-1的依赖项中会让gradle创建我想要的胖罐子。

    或者这是不可能的,我只需要用给我的两个罐子?

    谢谢你抽出时间。

  • 共有1个答案

    笪成周
    2023-03-14

    您可以在同一个tomcat实例后面部署两个独立的Jar来获得相同的结果。假设您在tomcat后面部署my-first-jar.jarmy-second-jar.jar,您将获得两组endpoint,如:

    http://localhost:8080/my-第一个jar/来自第一个jar的API

    http://localhost:8080/my-第二个jar/api来自第二个jar

    然而,似乎你无法正确地创建一个胖罐子。默认情况下,jar中不包含项目的依赖项。您需要明确地告诉构建工具(在您的例子中是gradle)来创建一个胖jar。看看这里

    一旦创建了项目1的胖jar,它也会有来自项目2的文件,但您只能运行一个spring启动应用程序。

    PS:如果你愿意,你可以在一个容器应用程序中运行多个应用程序。看看这里,但我不建议你沿着那条路走,因为那条路很乱

     类似资料:
    • 为了优化Docker层,我尝试将我们的30M Spring Boot fat jar拆分为2M应用程序。jar和2800万libs。罐子 我可以使用爆炸模式,但我更喜欢使用2罐,因为它简化了一些事情,如部署,脚本等。 我的问题是,当我把lib分离出来时,我无法让启动器找到它们。无论是在jar模式还是爆炸模式(有两个dir)下,我都会 我在以下所有情况下都会得到这个: 知道我怎么才能让它工作吗?

    • 我有一个需求,我想找到运行的jar中的jar的路径。假设有一个名为example-1.0.0.jar的罐子在一个名为main-1.0.0.jar.的运行罐子里,我想知道运行罐子里存在的罐子的路径。 编辑1:例如,jar是项目中的一个依赖项。例如,假设我的项目中有一个log4j依赖项,我想知道log4j jar在类中的路径。我怎样才能找到路?

    • 我试图使用以下命令,但它说我需要导入org.apache.hadoop.lib.input.FileSplit。我试图在网上谷歌搜索,但仍然不知道我应该导入哪个罐子。我已经导入的jar是commons-cli-1.2.jar,hadoop-common-2.8.0.jar和hadoop-mapreduce-clienr-core-2.8.0.jar。 在此处输入图像描述 任何帮助都将不胜感激! 谢

    • 本文向大家介绍Android程序开发之UIScrollerView里有两个tableView,包括了Android程序开发之UIScrollerView里有两个tableView的使用技巧和注意事项,需要的朋友参考一下 一,效果图。 二,工程图。   三,代码。 RootViewController.h RootViewConroller.m 以上内容是小编给大家介绍的Android程序开发之UI

    • 是的。这种问题已经被问了很多时间了。这是我得到的。 我有一个用gradle构建的jar文件(将被称为“库”)。这个库在(依赖项)中嵌入了一个解压缩的jar。库的内部包(文件夹树)和嵌入类处于同一级别。例如,com.xxx.yyy是库,com.xxx.aaa是嵌入的、解压缩的jar类(依赖项)。 如果我以“独立的方式”运行jar(Java-jar等),它就能正常工作。 但如果我将这个jar作为库添加

    • 问题内容: 我有2个表,用户并遵循。下表后面有一个名为状态的列。我想根据状态对每个用户进行分组的次数进行计数。 下面的查询返回每个用户的每种状态类型的记录。 返回类似: 但我想要更友好的东西: 尝试使用group_concat和计数,但没有用。有什么线索吗? 问题答案: 您需要使用GROUP BY两次,首先从下面的(user_id,status)开始获取计数,然后从连接的表到concat的user