spring boot項(xiàng)目沒(méi)有mainClass如何實(shí)現(xiàn)打包運(yùn)行
springboot項(xiàng)目沒(méi)有mainClass實(shí)現(xiàn)打包運(yùn)行
項(xiàng)目分為兩個(gè)部分,一個(gè)是業(yè)務(wù)代碼模塊,一個(gè)是框架模塊,運(yùn)行class放在框架部分,那業(yè)務(wù)代碼如何配置才能正常運(yùn)行?
框架starter運(yùn)行類如下
@SpringBootApplication(
? ? scanBasePackages = {"com"}
)
public class Starter {@SpringBootApplication只會(huì)掃描@SpringBootApplication注解標(biāo)記類包下及其子包的類(特定注解標(biāo)記,比如說(shuō)@Controller,@Service,@Component,@Configuration和@Bean注解等等)納入到spring容器,如果不在@SpringBootApplication注解標(biāo)記類相同包下及其子包的類,需要我們?nèi)ヅ渲靡幌聮甙窂?,即scanBasePackages 。
業(yè)務(wù)代碼模塊如何配置?
借助spring-boot-maven-plugin配置如下
<plugin> ? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId> ? ? ? ? ? ? ? ? <configuration> ? ? ? ? ? ? ? ? ? ? <mainClass>com.core.Starter</mainClass> ? ? ? ? ? ? ? ? ? ? <layout>ZIP</layout> ? ? ? ? ? ? ? ? ? ? <classifier>exec</classifier> ? ? ? ? ? ? ? ? ? ? <includeSystemScope>true</includeSystemScope> ? ? ? ? ? ? ? ? </configuration> ? ? ? ? ? ? ? ? <executions> ? ? ? ? ? ? ? ? ? ? <execution> ? ? ? ? ? ? ? ? ? ? ? ? <goals> ? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>repackage</goal> ? ? ? ? ? ? ? ? ? ? ? ? </goals> ? ? ? ? ? ? ? ? ? ? </execution> ? ? ? ? ? ? ? ? </executions> ? ? ? ? ? ? </plugin>
mainClass最終會(huì)在jar包里的MANIFEST.MF文件中指定
Start-Class: com.core.Starter
Spring Boot Maven plugin的5個(gè)Goals
spring-boot:repackage,默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war,同時(shí)保留mvn package生成的jar/war為.originspring-boot:run,運(yùn)行Spring Boot應(yīng)用spring-boot:start,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理spring-boot:stop,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理spring-boot:build-info,生成Actuator使用的構(gòu)建信息文件build-info.properties
layout屬性的值可以如下:
JAR,即通常的可執(zhí)行jarMain-Class: org.springframework.boot.loader.JarLauncherWAR,即通常的可執(zhí)行war,需要的servlet容器依賴位于WEB-INF/lib-providedMain-Class: org.springframework.boot.loader.warLauncherZIP,即DIR,類似于JARMain-Class: org.springframework.boot.loader.PropertiesLauncherMODULE,將所有的依賴庫(kù)打包(scope為provided的除外),但是不打包Spring Boot的任何LauncherNONE,將所有的依賴庫(kù)打包,但是不打包Spring Boot的任何Launcher
classifier
生成可執(zhí)行jar包的后綴名
includeSystemScope
將system范圍依賴包也打進(jìn)來(lái),如
<dependency>
? ? ? ? ? ? <groupId>com.alipay</groupId>
? ? ? ? ? ? <artifactId>alipay-sdk-java</artifactId>
? ? ? ? ? ? <version>1.1</version>
? ? ? ? ? ? <scope>system</scope>
? ? ? ? ? ? <systemPath>
? ? ? ? ? ? ? ? ${project.basedir}/local_repo/com/alipay/alipay-sdk-java/1.1/alipay-sdk-java-1.1.jar
? ? ? ? ? ? </systemPath>
? ? ? ? </dependency>使用maven打包指定mainClass
<build> ? ? ? ? <plugins> ? ? ? ? ? ? <plugin> ? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId> ? ? ? ? ? ? ? ? <configuration> ? ? ? ? ? ? ? ? ? ? <mainClass>com.xxx.XxxApplication</mainClass> ? ? ? ? ? ? ? ? </configuration> ? ? ? ? ? ? ? ? <executions> ? ? ? ? ? ? ? ? ? ? <execution> ? ? ? ? ? ? ? ? ? ? ? ? <goals> ? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>repackage</goal> ? ? ? ? ? ? ? ? ? ? ? ? </goals> ? ? ? ? ? ? ? ? ? ? </execution> ? ? ? ? ? ? ? ? </executions> ? ? ? ? ? ? </plugin> ? ? ? ? </plugins> ? ? </build>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot 整合 Java DL4J 實(shí)現(xiàn)文物保護(hù)系統(tǒng)的詳細(xì)過(guò)程
在數(shù)字化時(shí)代,文物保護(hù)尤為關(guān)鍵,本文介紹如何利用SpringBoot和Deeplearning4j構(gòu)建一個(gè)圖像識(shí)別的文物保護(hù)系統(tǒng),系統(tǒng)采用卷積神經(jīng)網(wǎng)絡(luò)(CNN),能夠識(shí)別文物的損壞情況,本文介紹Springboot 整合 Java DL4J 實(shí)現(xiàn)文物保護(hù)系統(tǒng),感興趣的朋友一起看看吧2024-10-10
Java編程實(shí)現(xiàn)用hash方法切割文件
這篇文章主要介紹了Java編程實(shí)現(xiàn)用hash方法切割文件,簡(jiǎn)單介紹了hash的概念,然后分享了使用方法示例,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12
Springcloud hystrix服務(wù)熔斷和dashboard如何實(shí)現(xiàn)
這篇文章主要介紹了Springcloud hystrix服務(wù)熔斷和dashboard如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
spring 整合 mybatis 中數(shù)據(jù)源的幾種配置方式(總結(jié)篇)
因?yàn)閟pring 整合mybatis的過(guò)程中, 有好幾種整合方式,尤其是數(shù)據(jù)源那塊,經(jīng)??吹讲灰粯拥呐渲梅绞?,總感覺(jué)有點(diǎn)亂,所以今天有空總結(jié)下,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
Java8實(shí)現(xiàn)優(yōu)雅的獲取重復(fù)字符與次數(shù)
這篇文章主要為大家詳細(xì)介紹了在Java8中,我們應(yīng)該如何進(jìn)行字符及字符串的去重,以及計(jì)算去重次數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12
Java如何使用ConfigurationProperties獲取yml中的配置
這篇文章主要介紹了Java如何使用ConfigurationProperties獲取yml中的配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot整合SpringSecurity實(shí)現(xiàn)JWT認(rèn)證的項(xiàng)目實(shí)踐
本文會(huì)通過(guò)創(chuàng)建SpringBoot項(xiàng)目整合SpringSecurity,實(shí)現(xiàn)完整的JWT認(rèn)證機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
使用AbstractRoutingDataSource實(shí)現(xiàn)數(shù)據(jù)源動(dòng)態(tài)切換的實(shí)例
AbstractRoutingDataSource 是 Spring 框架提供的一個(gè)抽象類,用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源路由,這個(gè)類主要用于多數(shù)據(jù)源場(chǎng)景,其中可以根據(jù)不同的條件動(dòng)態(tài)地切換到不同的數(shù)據(jù)源,本文給大家介紹了如何使用AbstractRoutingDataSource實(shí)現(xiàn)數(shù)據(jù)源動(dòng)態(tài)切換,需要的朋友可以參考下2024-03-03

