問題描述:spring boot使用maven的package命令打出來的包,卻不包含依賴的jar包
問題原因:打包時使用了maven默認的maven-jar-plugin插件,而不是spring-boot-maven-plugin插件
解決方法:
方法1. pom中必須配置spring-boot-maven-plugin插件,而且必須指定需要執行的目標構建
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring.boot.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
方法2. 使用spring的parent來進行依賴管理,則不用指定執行構建的目標
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.6.RELEASE</version> </parent> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring.boot.version}</version> </plugin> </plugins> </build>
注:請避免直接使用mvn repackage命令,因為repackage依賴原生maven的package命令,直接執行repackage無法獲取依賴,會導致打包失敗。