【Maven】开发自己的starter依赖

文章目录

  • 【Maven】开发自己的starter依赖
    • 1. 准备工作
      • 1.1 创建一个项目
      • 1.2 修改pom文件
      • 1.3 修改项目结构
    • 2. 动手实现
      • 2.1 创建客户端类
      • 2.2 创建配置类
      • 2.3 配置路径
      • 2.4 下载到本地仓库
    • 3. 测试

1. 准备工作

1.1 创建一个项目

打开idea,创建一个springboot项目:

点击next,添加两个依赖:

点击finsh,创建成功。


1.2 修改pom文件

将pom文件中的版本号改为 0.0.1 (非必须操作):

<groupId>com.example</groupId><artifactId>test-spring-boot-starter</artifactId><!--0.0.1-SNAPSHOT--><version>0.0.1</version>

标签的内容都删掉:

<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>

因为这是一个我们自定义的一套sdk,并不需要打成jar包。


1.3 修改项目结构

将启动类和测试类都删掉,在resources目录下创建一个目录 META-INF ,在其中创建一个文件 spring.factories


2. 动手实现

2.1 创建客户端类

创建一个包 client,在其中创建一个类 CalculateClient :

@AllArgsConstructor@NoArgsConstructor@Slf4jpublic class CalculateClient {private String host;private String port;public String select(String id) {log.info("连接成功,地址为:{}", host);log.info("连接成功,端口为:{}", port);//返回查询结果return id;}}

2.2 创建配置类

创建一个包 config ,在其中创建一个类 CalculateConfig :

@Configuration@ConfigurationProperties("calculate.client")@Data@ComponentScanpublic class ClientConfig {private String host;private String port;@Beanpublic CalculateClient calculateClient() {return new CalculateClient(host, port);}}

2.3 配置路径

在我们刚刚创建的 spring.factories 文件中添加如下内容:

#spring boot starterorg.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.testspringbootstarter.config.ClientConfig

2.4 下载到本地仓库

点击 install 将项目下载到本地仓库,这样才能够提供给别的项目使用:


3. 测试

在别的项目中引入我们刚刚开发的依赖:

<dependency><groupId>com.example</groupId><artifactId>test-spring-boot-starter</artifactId><version>0.0.1</version></dependency>

然后在项目的 application.yml 文件中配置 hostport

然后在测试类中编写一个测试方法:

@Autowiredprivate CalculateClient calculateClient;@Testpublic void test(){String result = calculateClient.select("1");System.out.println(result);}

运行测试方法,结果如下:

到此,一个简单的 starter 就开发完毕了。