出于以下目的,我开始尝试建立自己的jar包:
- 为了以后解决常见问题,把对应问题的解决代码保存起来,后面可以快速完成
- 针对网上一些问题,而我工作上没有用到的,可以自己先写一份代码保存起来,以后再遇到可以直接使用
接下来就是解决步骤:
- 本地手动发布代码至maven中央仓库
- 与GitHub仓库的事件绑定,自动发布
本地手动发布
1、创建账号
登陆网站,创建一个网站,推荐使用GitHub账号的方式创建。
2、创建Namespace
这个为了验证你有创建对应groupId
的权限。这里推荐你创建一个组织,然后就可以申请名为io.github.<organization-name>
的Namespace
3、GPG
这个看文档似乎为了生成的jar包、源码等文件,生成一个签名,具体用途不清楚,我猜可能是为了校验吧。按照文档的步骤是:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 安装gpg brew install gpg # 验证是否安装完成 gpg --version # 生成key信息,按照要求输入就行,记住输入的密码 gpg --gen-key # 其中输出的结果有如下信息,要记住第二行的CA开头的字符串 # pub rsa3072 2021-06-23 [SC] [expires: 2023-06-23] # CA925CD6C9E8D064FF05B4728190C4130ABA0F98 # uid Central Repo Test <central@example.com> # sub rsa3072 2021-06-23 [E] [expires: 2023-06-23] # 发布你的公钥 gpg --keyserver keyserver.ubuntu.com --send-keys CA925CD6C9E8D064FF05B4728190C4130ABA0F98
|
4、项目的pom文件修改
(1)项目的坐标要明确
1 2 3 4
| <groupId>org.github.fourth</groupId> <artifactId>iywe-java</artifactId> <packaging>pom</packaging> <version>1.0.0</version>
|
(2)提供一些基础信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <name>iywe-java</name> <description>improve your work efficiency</description> <url>https://github.com/iywes/iywe-java</url>
<issueManagement> <system>GitHub Issues</system> <url>https://github.com/iywes/iywe-java/issues</url> </issueManagement>
<inceptionYear>2024</inceptionYear>
<licenses> <license> <name>MIT License</name> <url>https://github.com/iywes/iywe-java/blob/main/LICENSE</url> <distribution>repo</distribution> </license> </licenses>
<distributionManagement> <snapshotRepository> <id>snapshots</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>releases</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement>
<scm> <connection>scm:git:https://github.com/iywes/iywe-java.git</connection> <developerConnection>scm:git:git@github.com:iywes/iywe-java.git</developerConnection> <url>https://github.com/iywes/iywe-java</url> </scm>
<developers> <developer> <id>wangjie-fourth</id> <name>wang jie</name> <email>wangjie_fourth@163.com</email> <roles> <role>owner</role> <role>developer</role> </roles> </developer> </developers>
|
(3)发布的插件信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <build> <plugins> <plugin> <groupId>org.sonatype.central</groupId> <artifactId>central-publishing-maven-plugin</artifactId> <version>0.5.0</version> <extensions>true</extensions> <configuration> <publishingServerId>central</publishingServerId> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.1.0</version> <inherited>true</inherited> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <excludeResources>true</excludeResources> <useDefaultExcludes>true</useDefaultExcludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.1.0</version> <inherited>true</inherited> <executions> <execution> <id>bundle-sources</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <maxmemory>1024</maxmemory> <encoding>UTF-8</encoding> <show>protected</show> <notree>true</notree> <!-- Avoid running into Java 8's very restrictive doclint issues --> <failOnError>false</failOnError> <doclint>none</doclint> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> <configuration> <passphraseServerId>ossez</passphraseServerId> </configuration> </plugin> </plugins> </build>
|
(4)修改maven
的setting.xml
文件
5、发布
6、到官网确认发布
登陆官网,找到你刚才发布的信息,点击Publish
就可以了。
GitHub仓库自动发布
上面这种方式可以在本地就可以发布了,但到GitHub仓库就有问题
参考资料: