如何做一个sdk给其他项目引用

实际开发过程中,会有这么一种需求:我们写的某些代码,不仅我们这个项目需要,其他部门,其他项目可能也需要,我们怎么把我们的项目给别人使用呢? 有2种方法。

第一种方法:只在本机中的其他项目中使用(不方便给他人使用,也可以发jar包给他人使用,但是比较麻烦)

这种情况下只需要把公共sdk安装到本地maven仓库即可,然后添加依赖即可。需要注意sdk的 groupId,version,artifactId .因为在其他项目引用需要它。事例如下:

在其他项目中引用这么写,和写其他引赖一样。带上基本参数即可

 

第二种方法:不同部门,不同项目中引用。就好像在网上发布开源工具类一样,供所有人使用。

此处演示是发布到公司私有仓库,非公共仓库,一般公司都是有自己的仓库的,这样可以满足速度和安全性的考虑。前提是需要有自己公司的私服,一般使用nexus搭建即可

第一步:搭建自己的nexus 参考https://vsalw.com/1775.html

第二步:配置私服的正式版本和快照版本的私服地址

一般来说nexus是有用户名密码的,当从上面下载jar或者上载jar都需要认证,这个认证过程一般是通过maven来完成,当然也有gradle。此处演示使用的是maven,maven的配置文件是在maven安装目录conf/setting.xml

这个配置是对本机所有仓库生效,也就是说这个用户名密码可以用来登陆多个私服。那问题来了,如果我不同项目配置的不同私服,用户名密码都是不一样的怎么办?这里是根据id来区分的,简而言之就是你在setting.xml里面配置的多个用户名密码信息就像一个密钥对,密钥对都有一个id,在不同项目私服里,指定某个密钥对的id来登陆不同的私服.

conf/setting.xml里面是有<servers></servers>,我们需要在里面加一个或多个server.举例如下:

  <servers>  <server>

<id>vsalwResp</id>

<username>admin</username>

<password>admin</password>

</server>

</servers>

注意这里id是vsalwResp,后面会用到。

那么现在我怎么上传我的jar到私服呢?这里就需要了解仓库中的版本库,RELEASE和SNAPSHOT,具体配置如下:

<distributionManagement>
<repository>
<id>vsalwResp</id>
<name>Releases</name>
<url>http://nexus.vsalw.com:8888/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>vsalwResp</id>
<name>Snapshot</name>
<url>http://nexus.vsalw.com:8888/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

注意:

  1. 上面的id字段,实际就是我在maven安装目录中配置的“密钥对”的id
  2. 上面配置了2个库,一个是稳定版本RELEASE一个是开发版本(也就是不稳定版本)SNAPSHOT ,具体你的jar上传到了哪个库,是根据你的jar中,version字段来匹配的,注意是全大写。比如我的sdk信息如下:<version>带SNAPSHOT则会上传到快照库。
<groupId>com.wll.sdk</groupId>
<artifactId>demo</artifactId>
<version>0.0.4-SNAPSHOT</version>
<packaging>jar</packaging>

3.参考文档:https://www.cnblogs.com/duanxz/p/5210189.html

 

这样的话就可以把公共sdk上传到私服了,那么别人怎么从上面下载下来使用呢?从私服上下载还是上传代码都需要认证的,所以想下载也必需和第二步这样配置neuxs账号密码,和指定快照和正式版的地址,然后就像平时写依赖一样就可以了。

 

本站的文章多是老王开发工作中问题的记录,一个字一个字敲的,切实可行,可以分享,需要留个原文链接,至少也意思意思吧!
vsalw技术博客 » 如何做一个sdk给其他项目引用

每个人都是以自己独特的方式体味生活,或许别人不理解,但自己知道:其中的酸甜苦辣就叫做幸福!

认同! 瞎扯淡!