鍍金池/ 問答/Java  C++/ 如何將SpringBoot項目打成可導入到其他項目的jar包,按照官方教程的話,

如何將SpringBoot項目打成可導入到其他項目的jar包,按照官方教程的話,打成的jar導入到其他項目無效。

自己打包的jar和引入的jar格式不一致,不知道什么原因,目前導入的jar,無法正常使用。
clipboard.png
clipboard.png

回答
編輯回答
柒喵

spring-boot的項目,如果需要“打包給其他項目用“就不能用spring-boot的插件打包,用默認的打包
但是這樣之后的jar包是不能java -jar運行的

2017年2月22日 05:00
編輯回答
舊酒館

你或許需要:
1、剔除一些不需要的文件,如Application和ApplicationTests等
2、不能使用springboot自帶打包,使用普通maven打包

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>
   </plugins>
</build>

注意:spring-boot-maven-plugin打包,出現(xiàn)了bug。雖然目的項目引用了該打包項目,但是任然無法引用jar中的類,因為springboot-maven-plugin打包的第一級目錄為Boot-INF,無法引用

注-1、test范圍指的是測試范圍有效,在編譯和打包時都不會使用這個依賴

注-2、compile范圍指的是編譯范圍有效,在編譯和打包時都會將依賴存儲進去

注-3、provided依賴:在編譯和測試的過程有效,最后生成war包時不會加入,諸如:servlet-api,因為servlet-api,tomcat等web服務器已經(jīng)存在了,如果再打包會沖突

注-4、 runtime在運行的時候依賴,在編譯的時候不依賴

注-5:加入本地Maven路徑,類似:

C:\Users\ofcard\.m2\repository\com\scn7th\ding-robot-bind-send\0.0.1-SNAPSHOT>mvn install:install-file -Dfile=ding-robot-bind-send-0.0.1-SNAPSHOT.jar -DgroupId=com.scn7th -DartifactId=ding-robot-bind-send -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar

參考:
將一個項目打成一個jar包,導入到另一個項目中并調(diào)用
Gradle構建SpringBoot并打包可運行的jar配置
springboot打包成jar文件無法正常運行,解決辦法已經(jīng)找到
在spring boot項目(maven)中引入其他 spring boot項目(jar)

2017年4月1日 00:50