拥有自己的代码库真的很酷--如何开发一个SDK

简介 拥有自己的代码库真的很酷--如何开发一个SDK大家好,我是凯哥Java(绿色小气泡:kaigejava)标签:SDK开发、Maven依赖管理、代码复用分享理由:每个Java开发者都该有自己的代码库!本文揭秘如何将零散代码升级为专业SDK,通过Maven实现一键复用。从简单的Math工具类开始,教你打包、配置、发布完整流程,让'日复一日编程,年复一年造轮'成为历史。跟着做,你也能拥有

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

拥有自己的代码库真的很酷--如何开发一个SDK


大家好,我是凯哥Java(绿色小气泡:kaigejava)
标签:SDK开发、Maven依赖管理、代码复用

5d40556eced9b542615fca270fa9d82b.png

分享理由:每个Java开发者都该有自己的代码库!本文揭秘如何将零散代码升级为专业SDK,通过Maven实现一键复用。从简单的Math工具类开始,教你打包、配置、发布完整流程,让'日复一日编程,年复一年造轮'成为历史。跟着做,你也能拥有随时调用的私人代码宝库!



前言

不知你是否和我一样,对编程解决问题有一种 ” 懒人执着 “ :已有代码能解决的,一律不重复造轮子

写过的重要代码就拷贝到自己的文本文件里整理起来,下次遇到相同问题直接cv,还记的我一个水仙花算法的代码应付了整个大学遇到的水仙花问题

即了解代码怎么实现,也节省了重复编写代码的时间,看上去真是一举两得

但当我存储的代码块越来越多,管理则成了一个问题:

试问:你希望看满满一大页的代码块来找你的目标代码,还是顺手就自己编写完那简单的轮子?

何况固定的代码并不能应对不同的场景,没准你还要理解和修改呢

于是在大二那年,我的项目用上了Maven,一个开源的依赖管理工具,你想要的功能大多都可以直接搜索下载依赖

几乎彻底解决了造轮子问题,但仍然有问题:

其一:尽管依赖有很多,但毕竟不是自己写的,对于功能实现和后续优化可能并没有那么有帮助

其二:下载的依赖是否匹配项目也是一个问题,名称相似而不相同的依赖也有不少,如何选择也会影响之后的开发

既然又希望理解原理,又不想后续重复造轮子

为什么不自己写常用的依赖呢?

  • 通用的类,固定的常量,组件连接方法,超类的模板,常用的工具类等,都可以自己来写,打包成为依赖,自己来用呀

既了解如何实现,方便后续优化时进行更改,同时也利用Maven解决了管理问题,不用日后重复造轮子

步骤

新建项目(Springboot - spring Initializr)


打开IDEA,选择新建一个springboot项目


删除文件

删除springboot-starter-test依赖,删除build组件,删除Application主类,删除test中的测试方法

pom.xml配置如下:


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.3.7.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>


    <groupId>com.itegg</groupId>

    <artifactId>common</artifactId>

    <version>0.0.1</version>

    <name>common</name>

    <description>ITegg common package</description>

    <properties>

        <java.version>8</java.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter</artifactId>

        </dependency>


        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <optional>true</optional>

        </dependency>


    </dependencies>


</project>

项目结构:

1daf493c3329d1de63e2b5e1dbc584b5.png

新建配置类

在刚刚删除主类的地方生成新的配置类ITeggTestConfig(名字自己取就好)

9797c1ca62208b160ec3d8b1743d5e6e.png

package com.itegg.common;


import lombok.Data;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;


@Configuration

@ConfigurationProperties("itegg.test")

@Data          // lombok注解,帮助把属性设置get和set方法,这里暂时没用上

@ComponentScan // 扫包注解

public class ITeggTestConfig {


}

新建一个Util包,创建一个Math类

cc219eb6725bcb1388c4ba310a69edca.png

在resource下新建文件夹META-INF

在META-INF下新建一个spring.factories文件,指引开启项目(后面的com.itegg.common.ITeggTestConfig请改为上述创建的配置类名称)

8584c3661388930dbdb894f09ad80e40.png

内容如下:

# spring boot starter

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.itegg.common.ITeggTestConfig


打包

执行右侧Maven栏中的install命令进行打包

06a31bc926d5eb79fd4bf7e06149ce35.png

调用

复制该项目中的groupId,artifactId,version信息,放置在目标项目pom.xml文件中的dependency里

    <dependency>

        <groupId>com.itegg</groupId>

        <artifactId>common</artifactId>

        <version>0.0.1</version>

    </dependency>


刷新maven依赖,后续就像使用其他maven的依赖一样

public class Test {

    public static void main(String[] args) {

        int a = 10;

        int b = 20;

        Math math = new Math();

        System.out.println(math.Addition(a, b));

        System.out.println(math.Subtraction(a, b));

        System.out.println(math.Multiplication(a, b));

        System.out.println(math.Division(a, b));

    }

}

输出结果:

return:

30

-10

200

0

当然,这种只是一个再简单不过的例子,但不积跬步无以至千里,这样一步步建立自己的代码库,真的很酷!

顺带一提,这只是在本地maven中加载了依赖,其他电脑是使用不了的,如果希望上传到网上公开给大家使用的话,要去maven仓库注册账号发布

怎么样,读完了不想动手试试吗?

坚持日复一日编程,打破年复一年造轮


作者:凯哥Java

类型:转载

原作者:IT蛋

日期:2025年07月8日

标签:SDK开发、Maven依赖管理、代码复用

链接:https://juejin.cn/post/7292217222575407142


TopTop