mike-neckのブログ

JavaかJavaFXかJavaEE(なんかJava8が多め)

Gradle プラグインポータルにプラグインを登録する方法 - 20150821-最新版.xls

f:id:mike_neck:20150818084108g:plain

昨年末頃に発売された『Gradle徹底入門』にはgradleプラグインポータルに登録する方法が付録として掲載されていますが、Gradleの開発速度が非常に速いため、最新の方法と異なっている部分があるので、最新の方法を紹介します。(以前の方法でもできるかもしれないと思うけど…)

なお、本記事では、以前にbintrayやjcenterに登録した方のための移植方法については解説していません。これは次回以降の記事に掲載する予定です。


手順

  1. Gradle pluginポータルのアカウントを作成する
  2. API keyを取得する
  3. 取得したAPI keyを設定ファイルに記述する
  4. plugin-publishプラグインを適用する
  5. プラグインをアップロードする

1. Gradle plugin ポータルのアカウントを作成する

プラグインポータルのログインページにアクセスします。

GitHubアカウントがある人は、GitHubアカウントでログインすることができます。

GitHubアカウントのない人は、サインアップからユーザー登録を行います。

GitHubアカウントで登録

GitHubのOAuth認可ページに飛ぶと思うので、認可します。

サインアップページで登録

下記の情報を入力して、登録(register)ボタンを押下すると、多分メールが届くので、そのメールに記載されたアドレスにアクセスすれば多分アカウント登録完了です。

  • ユーザー名
  • 氏名
  • メールアドレス
  • パスワード

なんで、「多分」と書いたかというと、僕はGitHub経由でアカウントを作ったから、こっちの方法がわからないためです。

2. API keyを取得する

ログインが完了すると、ユーザープロフィールのページが表示されます。

ここに「API key」というタブが表示されているので、これを押下します。

そうすると次のようなメッセージとともにAPI keyが表示されます。


Copy the following to your HOME_DIR/.gradle/gradle.properties (~/.gradle/gradle.properties) file:

gradle.publish.key=hogehogehogehogehogehoge
gradle.publish.secret=foobarbazfoobarbazfoobarbaz

このgradle.publish.keygradle.publish.secretをそれぞれコピーしておきます。

3. 取得したAPI keyを設定ファイルに保存する

上記のメッセージにあるように~/.gradle/gradle.propertiesファイルに追記します。

(Windowsの場合はC:¥Users¥your-name¥.gradle¥gradle.properties)

4. plugin-publishプラグインをプロジェクトに適用する

プラグインパブリッシュプラグイン(何を言っているんだかわからないと思うが、そういうプラグインである)をbuild.gradleに適用します。

plugins {
    id 'com.gradle.plugin-publish' version '0.9.1'
}

plugin-publishに必要な情報をpluginBundle{} ブロックに追記します。

pluginBundle {
    website = 'https://github.com/your-name/your-repository-name' // プラグインについての情報が掲載されているwebサイト
    vcsUrl = 'https://github.com/your-name/your-repository-name' // vcsのURL(githubとかbitbucketのURL)
    description = 'This is description for your plugin' // プラグインに対する説明
    plugins {
        yourPlugin {
            id = 'com.your.name.your-plugin-id' // src/main/resources/META-INF/gradle-pluginsにあるpropertiesファイルの名前
            displayName = 'Your plugin name' // なんかあまり使われてないけど、プラグインの名前を書いておく
            tags = ['test', 'your-category', 'aws'] // 検索するときのキーワードになるので、どのようなプラグインであるかのタグを設定する
        }
    }
}

この他、 pluginBundle{}ブロックにはmavenCordinates{}というブロックがあって、bintrayにアップロードしている場合などの関連付けなども行えます。設定できるのは以下の項目

  • groupId - bintrayでのgroupId
  • artifactId - bintrayでのartifactId
  • version - bintrayでのversion

なお、mavenCordinates{}ブロックでgroupIdを書き換えた場合、Gradlewareチームによるマニュアルの承認が必要になり、すぐには利用できません。どれくらいの時間がかかるかもわかりません。

5. プラグインをアップロードする

plugin-publishプラグインを適用すると、次のタスクが追加されます。

Plugin portal tasks tasks
-------------------------
login - Update the gradle.properties files so this machine can publish to the Gradle Plugin portal.
publishPlugins - Publishes this plugin to the Gradle Plugin portal.

まず、loginタスクを実行します。

すると、プラグインポータルの認証用のURLが表示されてタスクが止まるので、そのURLにブラウザー、あるいはcurlwgetなどでアクセスします。

すると認証が完了してタスクが終了します。

その後にpublishPluginsタスクを実行します。

これで、プラグインの登録が完了します。


Gradle芸人からは以上です。