Maven實(shí)現(xiàn)自己的starter依賴(lài)
1. 準(zhǔn)備工作
1.1 創(chuàng)建一個(gè)項(xiàng)目
打開(kāi)idea,創(chuàng)建一個(gè)springboot項(xiàng)目:

點(diǎn)擊next,添加兩個(gè)依賴(lài):

點(diǎn)擊finsh,創(chuàng)建成功。
1.2 修改pom文件
將pom文件中的版本號(hào)改為 0.0.1 (非必須操作):
<groupId>com.example</groupId> <artifactId>test-spring-boot-starter</artifactId> <!-- <version>0.0.1-SNAPSHOT</version>--> <version>0.0.1</version>
將 <build> 標(biāo)簽的內(nèi)容都刪掉:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
因?yàn)檫@是一個(gè)我們自定義的一套sdk,并不需要打成jar包。
1.3 修改項(xiàng)目結(jié)構(gòu)

將啟動(dòng)類(lèi)和測(cè)試類(lèi)都刪掉,在resources目錄下創(chuàng)建一個(gè)目錄 META-INF ,在其中創(chuàng)建一個(gè)文件 spring.factories :

2. 動(dòng)手實(shí)現(xiàn)
2.1 創(chuàng)建客戶(hù)端類(lèi)
創(chuàng)建一個(gè)包 client,在其中創(chuàng)建一個(gè)類(lèi) CalculateClient :
@AllArgsConstructor
@NoArgsConstructor
@Slf4j
public class CalculateClient {
private String host;
private String port;
public String select(String id) {
log.info("連接成功,地址為:{}", host);
log.info("連接成功,端口為:{}", port);
//返回查詢(xún)結(jié)果
return id;
}
}
2.2 創(chuàng)建配置類(lèi)
創(chuàng)建一個(gè)包 config ,在其中創(chuàng)建一個(gè)類(lèi) CalculateConfig :
@Configuration
@ConfigurationProperties("calculate.client")
@Data
@ComponentScan
public class ClientConfig {
private String host;
private String port;
@Bean
public CalculateClient calculateClient() {
return new CalculateClient(host, port);
}
}
2.3 配置路徑
在我們剛剛創(chuàng)建的 spring.factories 文件中添加如下內(nèi)容:
#spring boot starter org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.testspringbootstarter.config.ClientConfig
2.4 下載到本地倉(cāng)庫(kù)
點(diǎn)擊 install 將項(xiàng)目下載到本地倉(cāng)庫(kù),這樣才能夠提供給別的項(xiàng)目使用:

3. 測(cè)試
在別的項(xiàng)目中引入我們剛剛開(kāi)發(fā)的依賴(lài):
<dependency>
<groupId>com.example</groupId>
<artifactId>test-spring-boot-starter</artifactId>
<version>0.0.1</version>
</dependency>
然后在項(xiàng)目的 application.yml 文件中配置 host 和 port :

然后在測(cè)試類(lèi)中編寫(xiě)一個(gè)測(cè)試方法:
@Autowired
private CalculateClient calculateClient;
@Test
public void test(){
String result = calculateClient.select("1");
System.out.println(result);
}運(yùn)行測(cè)試方法,結(jié)果如下:

到此,一個(gè)簡(jiǎn)單的 starter 就開(kāi)發(fā)完畢了。
到此這篇關(guān)于Maven實(shí)現(xiàn)自己的starter依賴(lài)的文章就介紹到這了,更多相關(guān)Maven starter依賴(lài)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)在線(xiàn)語(yǔ)音識(shí)別
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)在線(xiàn)語(yǔ)音識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Spring Boot如何使用Spring Security進(jìn)行安全控制
要實(shí)現(xiàn)訪(fǎng)問(wèn)控制的方法多種多樣,可以通過(guò)Aop、攔截器實(shí)現(xiàn),也可以通過(guò)框架實(shí)現(xiàn),本文將具體介紹在Spring Boot中如何使用Spring Security進(jìn)行安全控制。2017-04-04
定時(shí)任務(wù)注解@Scheduled不生效問(wèn)題及解決
這篇文章主要介紹了定時(shí)任務(wù)注解@Scheduled不生效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Mybatis使用useGeneratedKeys獲取自增主鍵
這篇文章主要為大家介紹了Mybatis使用useGeneratedKeys獲取自增主鍵示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
java獲取redis日志信息與動(dòng)態(tài)監(jiān)控信息的方法
這篇文章主要給大家介紹了關(guān)于java如何獲取redis日志信息與動(dòng)態(tài)監(jiān)控信息的方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-04-04
SpringBoot下載文件遇到文件損壞等問(wèn)題解決方案
調(diào)用接口下載spring?boot工程的resources目錄下的excel模板文件,非常常見(jiàn)的一個(gè)文件下載功能,但是卻容易遇到很多坑,下面總結(jié)記錄下2023-10-10
tk.Mybatis 插入數(shù)據(jù)獲取Id問(wèn)題
本文主要介紹了tk.Mybatis 插入數(shù)據(jù)獲取Id問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Spring Cloud Zipkin服務(wù)端追蹤服務(wù)
這篇文章主要介紹了Spring Cloud Zipkin服務(wù)端追蹤服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

