[英]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-plugin
或spring-boot-gradle-plugin
具體取決於您的構建系統。 這些插件的用途正是您的用例。
Spring Guides是開始探索的好地方: Maven Guide , Gradle 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.