奇技淫巧:在没有源码的情况下,把 snapshot 转成 release 包
奇技淫巧:在没有源码的情况下,把 snapshot 转成 release 包
背景
项目中依赖了一个旧的 snapshot.jar,有人提出要求必须使用 release.jar,不能使用 snapshot。
问题来了,该 jar 所属的源码不知所踪,那还怎么发布 release.jar 呢?这就是本文要解决的问题。
下载
首先我们登录仓库,输入 ArtifactId,找到对应的 snapshot jar 包,并点击进入详情。
找到关键的三个 jar:
- x.jar
- x-sources.jar
- x.pom
分别点击进入详情
依次点击 Path,下载到本地。
修改
首先修改名字,如图所示。
再使用任意工具解压 x.jar,提取出两个文件夹。进入 META-INF
修改 MANIFEST.MF,把里面的 snapshot 字符串去掉(如果有的话)
再点击 maven 文件夹
修改 pom.xml、pom.properties 文件,把里面的 snapshot 字符串去掉。
上传
把前面解压出来的文件重新打包成 jar
jar cvf my-1.4.1.jar com META-INF
# you can also use zip
# zip -r my-1.4.1.jar com META-INF
然后上传仓库
在Upload中,点击 maven-releases
把三个文件添加上去,点击 Upload。
可以看到,新的 release 版本的 jar 包已经在仓库中了,可以被安装使用了。