2022年2月26日土曜日

GitHubのMavenあれなのでMaven Centralを使うことにした

GitHubのMaven Repositoryがあれなので、Maven Central Repositoryに登録することにしてみた。

詳細は省略してざっくりした手順。

sonatype というところが管理しているらしい sonatype OSS Repository Hosting (ossrh)というのが本当の名前か。

手順はこんな感じで案内されている。

https://central.sonatype.org/publish/publish-guide/

アカウントは以前から作ってあったので、その先から。

プロジェクトを登録する。groupId毎に申請する必要があるので別プロジェクト、サブグループなどにする場合は再度申請するらしい。SoftLib系はgroupId 1つでいいかと思うのでまだ1つしか登録はしていない。

申請はフォームがあるのでそこから申請する。

内容はURLなどと、プロジェクトの説明。

掲示板っぽくやりとりするが、機械的に処理されるので特に詳しく書く必要はない。他の人が申請しているのを見て真似してもいい。

groupId は独自ドメインの他、GitHub系も使えるが今回はドメインを持っているので使う。

GitHubのプロジェクトや独自ドメインの所有証明(DNSにTXTレコードを追加など)ができると、プロジェクトの登録は完了。

GPG(PGPのGnu版っぽいもの)の署名が必要なので、鍵と公開鍵を作ってどこかに登録する。Thunderbirdなどで使っているのあがあれば使えるのかもしれないが別で作った。GitHubにも登録しておけるかも。

事前に準備しておくのはMavenなJavaプロジェクト。

ソースコードはjavadoc までエラーなく生成できる状態になっているといい。

Mavenのpom.xml と settings.xml にossrhとGPGの鍵などを登録、ライセンスなど必要な項目も追加してdeployすると公開できる。コードのjarの他、ソースコード、javadocと各GPG署名が公開される。

gitにもGPG鍵は登録できるらしいがNetBeans IDEから更新しているので動作しているのかは不明。

リリース版は、整合性の調査など時間がかかるが数分程度で公開される。同じバージョンは1度しか公開できないし、削除もできないはず。

SNAPSHOTは同じバージョンでも繰り返し登録できる。整合性調査等もなく特に制限がなかったような気がするが、あまり使われてはいないような感じ。

数本のパッケージに分けて公開してみたが、暗号系などあと数本増やす予定もあったりなかったり。

誰か使う人が出てくるのかどうか。

https://github.com/okomeki/ にあるものの半分くらいが登録済み。SoftLib ABNF JSON を中心に更新してみたが、リリース頻度はもう少し落としてもいいのかもしれず。現状は互換性を考えず追加してみたりしているのでバージョンを固定して使ってみるのがおすすめかもしれない。JSONはほぼ固まったかなというところで暗号系とPKI系をつついてみているところ。

RSA鍵を作る

最近暗号系をいろいろ実装してみている中で PKCS #1 の RSA も必要になってきたので実装してみた。中身がわからないと使いにくいタイプ。 RSA は公開鍵暗号という形で秘密鍵、公開鍵の2つの鍵を使う。AESなどの共通鍵暗号とは違うところ。 公開鍵で暗号化、秘密鍵で復号ができ...