簡體   English   中英

如何從spring boot項目創建jar,我們要在另一個spring boot應用中使用的jar?

[英]how to create jar from spring boot project , this jar we want to use in another spring boot app?

我們計划創建一個以jar文件形式創建的spring boot項目,並將這個jar作為另一個spring boot應用程序的依賴項,這是第一個jar必須包含我們編寫的類及其相關的jar文件,是否那樣的可能嗎?有人可以幫助我們嗎?

問題是當我創建jar時,只有我編碼的類才打包到jar中,而不是該應用程序的依賴項

只需使用spring-boot-maven-pluginspring-boot-gradle-plugin具體取決於您的構建系統。 這些插件的用途正是您的用例。

Spring Guides是開始探索的好地方: Maven GuideGradle Guide

唯一的警告是您想從此類共享庫中排除tomcat內部容器:

Maven:

<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>

搖籃:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
    ...
}

您可以使用“ maven shade”插件創建一個Fat罐,也就是您要在子項目中使用的父項目的uber-jar來做到這一點。 此Fat jar包含您編寫的代碼以及項目的所有依賴項。 您可以在此處查看更多詳細信息: https : //maven.apache.org/plugins/maven-shade-plugin/index.html 創建的Fat jar將放置在您的本地存儲庫中。

在子項目中,可以通過指定以下屬性來將父項目用作依賴項:

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

確保您使用Maven Shade插件而不是Spring Boot默認插件構建父項目。 另外,在構建父項目時,請以“全新安裝”為目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM