1. 程式人生 > >mvn spring-boot:repackage神坑“'spring.datasource.url' is not specified and no embedded datasource...”

mvn spring-boot:repackage神坑“'spring.datasource.url' is not specified and no embedded datasource...”

問題:

一開始以為是`spring.datasource.url`配置有問題,後來發現Intellij idea下能執行,但是打成jar包就不能執行,於是反應過來,應該是application.properties等配置檔案,沒有被打進包裡面去。解壓jar包,果然沒有在classes中找到配置檔案。

用spring-boot:repackage注意事項

一、先package
spring-boot:repackage在執行過程中,首先讀取已經打包的jar檔案,然後進行必要的啟動設定,並最終輸出可執行的jar檔案。
mvn clean package spring-boot:repackage -e -DskipTests

-e是輸出錯誤詳情,-DskipTests是跳過測試

二、將resource目錄下的配置檔案手動打包到BOOT-INF下
springboot不會跟springmvc一樣,自動將resource下的配置檔案打包到BOOT-INF/classes下,也不會像springmvc一樣,自動將

webapps/WEB-INF/lib下的第三方jar包打進lib中,因此,配合檔案第三方jar包都必須手動打進最後的jar包,方式如下:

<build>
	<resources>
		<resource>
			<directory>src\main\resources<directory>
			<targetPath>BOOT-INF\classes</targetPath>
		</resource>
	</resources>
</build>
<build>
	<resources>
		<resource>
			<directory>path of you 3rd jar<directory>
			<targetPath>BOOT-INF\lib</targetPath>
		</resource>
	</resources>
</build>