GradleでBintrayにアップロードする手順

  • 80
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Bintrayとは?

BintrayJFrogが提供しているソフトウェアの配布を行う為のサービスです。

概要

おおまかに以下のような構造で成り立っています。

  • Repository
  • Package
  • Version
  • File

それぞれのイメージは、以下のような感じです。

  • Repository: 例えばMaven、rpm、debと言ったレポジトリ
  • Package: 配布物。
  • Version: 配布物の世代。
  • File: 配布物のファイル。

まず初めに

これからざっくりと説明しますが、詳細についてはHow Do I Upload My Stuff to Bintray?
を見てください。

Bintrayのアカウントを取得します。
メールアドレスで取得する方法の他に、GitHub、Twitter、Googleのアカウントでも取得できます。

Bintrayでは、GitHubとの連携がしやすいようになっているため、もしOSSで公開するのであればGitHubでレポジトリを作ったほうがいいと思います。

Repositoryを用意する

サインインすると既に4つRepositoryが提供されています。
今回は、Mavenで利用できるようなプロダクトを、Gradleでアップロードするため、 mavenを利用します。
Repositoryは、新たに追加出来るのでいろいろと分けて使えそうです。

Packageを作る

次に mavenを選択するとPackageのリストが表示されます。
Add New Packageから新しいPackageを作ります。
Name以外の項目は、後で編集することも出来ます。
Licensesでは、主要なOSSのライセンスを選べます。
Make download numbers in stats publicを選ぶと、ダウンロードされた統計が見えるようになります。

先ほどGitHubとの連携がしやすいとありましたが、GitHubのレポジトリであれば、
GitHub repoGitHub release notes fileの項目に設定できるようになります。
また、Packageの ReadmeRelease notesにて設定されたものが表示されます。

Versionを用意する

New Versionから新しいVersionを作れます。
Release dateは後から変えられないので、注意してください。

Choose GitHub tag にてGitHubのリリースタグを使用することが出来ます。

ここまで出来たらあとは、アップロードするだけです。
Upload Filesからでもアップロード出来ます。

gradle-bintray-pluginを利用する

bintray/gradle-bintray-plugin

2014-07-13時点での最新は0.5です。

build.gradleに追加するコードは、Usageをご覧ください。

Configurationに、どのような設定をすれば良いのか書いてあります。

bintray_userbintray_api_keyのような認証情報は .gradle/gradle.propertiesに書いておきましょう。
bintray_api_keyhttps://bintray.com/profile/editAPI Keyにあります。
PublicationNameは、65.1. The “maven-publish” Plugin
Example 65.2. Adding a MavenPublication for a java componentを用いて説明すると、


publications {
    mavenJava(MavenPublication) {
        from components.java
    }
}

MavenPublicationの定義名である mavenJavaのことです。

詳細な bintrayのプロパテイはBintrayExtension.groovyを参考にしてください。

アップロードする

gradle tasksにて bintrayUploadが追加されているはずです。
gradle publishまたは、 gradle buildで予め生成しておく必要があります。
gradle bintrayUploadを実行すれば、アップロードされます。

-SNAPSHOTが付いていると BAD REQUESTとして扱われます。
アップロードに失敗してゴミファイルが残ってしまった場合でも24時間以内であれば、
Versionの画面上から Discardを選択することで破棄できます。
Publishを選択すると公開されます。

ダウンロードする

build.gradleのに以下のように追加するとレポジトリとして使用できます。

repositories {
    // JCenterに登録した場合
    jcenter()

    maven {
        url "http://dl.bintray.com/$bintray_user/$Repository"
    }
}

curlでもダウンロード出来ます。

curl -L -o <FILE.EXT> "http://dl.bintray.com/$bintray_user/$Repository/<FILE_TARGET_PATH>"

おわりに

今回は、実験的にjarを作成したけどsonatypeに申請するのが面倒だったので、公開する方法は無いかと探していたところ、Bintrayがあったので助かりました。
容量も500MBなので使い方次第だと思います。
BintrayにはJCenterというMavenレポジトリがあるので、ゆくゆくはそちらへ登録されるように申請するということも出来るみたいです。

GitHubを使っていて、実験用レポジトリとして使いたい人がいらっしゃったら、是非Bintrayを使ってみてはいかがでしょうか。

JCenterへの登録

2014-07-13 追記

Bintrayに登録したMavenレポジトリのパッケージは、JCenterへ登録することが出来ます。

詳細は、Including Your Packages in JCenterをご覧ください。

ちなみに sources.jarが無いと 「To include your package in JCenter, kindly add a source jar to the release version files. We'll be glad to include your package then. 」
と指摘されます。

最低限必要なファイルは、以下の通りです。

  • pom.xml
  • jar
  • sources.jar
  • javadoc.jar