|
|
Embulk(0.9以前)のプラグインはRubyGemsからダウンロードする方式になっているので、自作プラグインをリリース(公開)する場合は、このサイトに自作プラグインを登録(アップロード)する。
(RubyGemsはRubyのソフトウェアの配布用のサイトらしい)
RubyGemsに自作プラグインを登録する為には、アカウントを作成する必要がある。(メールアドレスだけあればいい。審査も何も無いようで、えらく簡単^^;)
以上で登録は終了。
確認メールは送られて来ない模様(苦笑)
それから、このサイトへアップロードする為に、自分のマシン上に認証ファイルを配置する必要がある。
https://rubygems.org/api/v1/api_key.yaml
」。ダウンロードする際はアカウントIDとパスワードを入力する必要がある。~/.gem
」の下に「credentials
」というファイル名で配置する。$ cd ~ $ mkdir .gem $ curl -u アカウントID https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials $ chmod 0600 ~/.gem/credentials
Embulkプラグイン(Java版)は以下のようにしてリリース(公開)する。
spec.name = "${project.name}" spec.version = "${project.version}" spec.authors = ["hishidama"] spec.summary = %[Apache POI Excel parser plugin for Embulk] spec.description = %[Parses Excel files(xls, xlsx) read by other file input plugins.] spec.email = ["メールアドレス"] spec.licenses = ["MIT"] spec.homepage = "https://github.com/hishidama/embulk-parser-poi_excel"
$ ./gradlew clean test
$ ./gradlew gemPush
久しぶりにリリースしようとしたら、エラーが出た^^;[2020-09-12]
$ ./gradlew gemPush
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:classpath
:gemspec
:gem
Successfully built RubyGem
Name: embulk-parser-poi_excel
Version: 0.1.8
File: embulk-parser-poi_excel-0.1.8.gem
:gemPushERROR: While executing gem ... (RuntimeError)
Can't find 'rubygems-update' in any repo. Check `gem source list`.
BUILD SUCCESSFUL
build.gradleを修正する必要がある。
(jruby-gradle.baseのバージョンを1.5.0にし、task gem, gemPushの内容を書き換える)
あと、Cygwin上でgemタスク(gemPushで実行される)を実行すると、生成されるgemファイルの中身が足りなくなった。
(この状態でembulk installしても、インストールは正常に終わるように見えるが、実際には認識されなくて実行できない)
コマンドプロンプトから「gradlew gemPush
」を実行すればOK。
久しぶりにリリースしようとしたらまたエラーが出た。[2023-08-11]
> gradlew gemPush
> Task :gem
WARNING: open-ended dependency on rake (>= 10.0, development) is not recommended
if rake is semantically versioned, use:
add_development_dependency 'rake', '~> 10.0'
WARNING: See http://guides.rubygems.org/specification-reference/ for help
Successfully built RubyGem
Name: embulk-parser-poi_excel
Version: 0.1.13
File: embulk-parser-poi_excel-0.1.13.gem
> Task :gemPush
Enter your RubyGems.org credentials.
Don't have an account yet? Create one at https://rubygems.org/sign_up
HTTP Basic: Access denied.
FAILURE: Build failed with an exception.
RubyGems側で認証方法が変わったのか、APIキーを用意したらpushできた。
RubyGemsにアップロードした特定バージョンを非公開にすることが出来る。[2020-09-12]
build.gradleにyankタスクを追加する。
task gemYank(type: JRubyExec) {
jrubyArgs "-S"
script "gem"
scriptArgs "yank", "${project.name}", "-v", "0.1.8" ←非公開にしたいバージョンを指定する
}
そして、そのタスクを実行する。
$ ./gradlew gemYank
※RubyGems上で非公開になるだけで(削除されるわけではない模様)、同一バージョンをgemPushできるわけではないので注意。
「gradlew gem」によってpkgディレクトリーの下にgemファイルが作られるが、その中を展開して確認する方法。[2020-09-12]
build.gradleにunpackタスクを追加する。
task gemUnpack(type: JRubyExec) { jrubyArgs "-S" script "gem" scriptArgs "unpack", "pkg/${project.name}-${project.version}.gem" }
そして、そのタスクを実行する。
$ ./gradlew gemUnpack
プロジェクトディレクトリー直下に展開されたディレクトリーが作られる。