Java 如何从SpringBoot项目创建jar,我们想在另一个SpringBoot应用程序中使用这个jar?

Java 如何从SpringBoot项目创建jar,我们想在另一个SpringBoot应用程序中使用这个jar?,java,spring,spring-boot,gradle,jar,Java,Spring,Spring Boot,Gradle,Jar,我们正计划创建一个spring boot项目,我们将其创建为jar文件,这个jar将用作另一个spring boot应用程序的依赖项,重点是第一个jar必须包含我们编写的类及其相关的jar文件,可能是这样吗?有人能帮我们吗 问题是,当我创建jar时,只有我编写的类被打包到jar中,而不是该应用程序的依赖项,这取决于您的构建系统。这些插件的用途正是您的用例 春季指南是开始探索的好地方: 唯一需要注意的是,您希望从此类共享库中排除tomcat内部容器: 马文: <dependencies>

我们正计划创建一个spring boot项目,我们将其创建为jar文件,这个jar将用作另一个spring boot应用程序的依赖项,重点是第一个jar必须包含我们编写的类及其相关的jar文件,可能是这样吗?有人能帮我们吗

问题是,当我创建jar时,只有我编写的类被打包到jar中,而不是该应用程序的依赖项,这取决于您的构建系统。这些插件的用途正是您的用例

春季指南是开始探索的好地方:

唯一需要注意的是,您希望从此类共享库中排除tomcat内部容器:

马文:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- ... -->
</dependencies>
只需使用或取决于您的构建系统。这些插件的用途正是您的用例

春季指南是开始探索的好地方:

唯一需要注意的是,您希望从此类共享库中排除tomcat内部容器:

马文:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- ... -->
</dependencies>
您可以使用“maven shade”插件创建一个胖jar,也称为父项目的uber jar,您希望在子项目中使用它。这个胖jar包含您编写的代码以及项目的所有依赖项。您可以在此处查看更多详细信息:。创建的Fat jar将放在本地存储库中

在子项目中,可以通过指定以下属性将父项目用作依赖项:

<dependency>
  <groupId>parent_project_group_id</groupId>
  <artifactId>parent_project_artifact_id</artifactId>
  <version>parent_project_version</version>
<dependency>

父项目组id
父\u项目\u工件\u id
父项目版本
确保使用maven shade插件而不是spring boot默认插件构建父项目。另外,在构建父项目时,使用“clean install”作为目标。

您可以使用“maven shade”插件创建一个胖jar,也称为父项目的uber jar,您希望在子项目中使用它。这个胖jar包含您编写的代码以及项目的所有依赖项。您可以在此处查看更多详细信息:。创建的Fat jar将放在本地存储库中

在子项目中,可以通过指定以下属性将父项目用作依赖项:

<dependency>
  <groupId>parent_project_group_id</groupId>
  <artifactId>parent_project_artifact_id</artifactId>
  <version>parent_project_version</version>
<dependency>

父项目组id
父\u项目\u工件\u id
父项目版本

确保使用maven shade插件而不是spring boot默认插件构建父项目。另外,在构建父项目时,使用“干净安装”作为目标。

无论它是否是spring boot应用程序,任何基于java的应用程序都可以作为jar。运行
gradle fatJar
任务。这将创建一个包含所有依赖项的jar,无论它是否是spring引导应用程序,任何基于java的应用程序都可以作为jar。运行
gradle fatJar
任务。这将创建一个包含所有依赖项的jar。我用更为初学者友好的信息更新了我的答案。我创建了一个类,其中一个方法用@Scheduled注释,我将这个应用程序添加到另一个spring boot中,但“@Scheduled”方法在启动spring boot应用程序时没有运行,在该应用程序中我添加了生成的jar类路径,这可能是什么问题?我建议为您的新问题创建单独的SO问题。使用代码片段。我用更适合初学者的信息更新了我的答案。我创建了一个类,其中一个方法用@Scheduled注释,我将此应用程序添加到另一个spring boot中,但是当我启动spring boot应用程序时,“@Scheduled”方法没有运行,我在其中添加了生成的jar类路径,可能是什么问题?我建议为您的新问题创建单独的SO问题。使用代码片段。