もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

gradleマルチプロジェクトのサブプロジェクト全部ひっくるめたjavadocを生成する

gradleマルチプロジェクトのサブプロジェクト全部ひっくるめたjavadocを生成する方法

ググっても決定打がなかったのでまとめ。

Java界隈ってなんかそんなの多い気がする。)

前提は以下。

  • lombokで楽してるソース
  • SpringBootを使ってるソース(XMLは使ってません。全部ソース上で@Autowired)
  • ソースのエンコードUTF-8
  • Visual Studio Code for Windowsのgit bashからgradlewで実行したいです
  • gradleのプロジェクトはフラットレイアウトです
  • リーリエ可愛い!スイレン可愛い!こんな子たちにちやほやされてるサトシ、ズルすぎでしょ!

はっ!雑念が。(ポケモンサンムーン見ながら検証)

成功例

master/build.gradleをこんな感じにします。

plugins {
  // サブプロジェクトにdelombokなソースを生成させるためのプラグイン
  id "io.freefair.lombok" version "6.0.0-m2" apply false

  // 全部入りjavadocを生成するプラグイン
  id "io.freefair.aggregate-javadoc" version "6.0.0-m2"
}

// サブプロジェクトに対するオプション
subprojects {
  // delombokソース生成プラグインを読み込む
  apply plugin: "io.freefair.lombok"

  // javadocの出力文字コードを指定する(これがないとコメントの日本語がWindows-31Jに変換できないと怒られます)
  apply plugin: "java"

  javadoc {
    options.encoding = "UTF-8"
  }
}

// 全部入りjavadocプラグインに対するオプション
aggregateJavadoc {
  // javadocの出力文字コードを指定する(これがないとコメントの文字列がWindows-31Jに変換できないと怒られます)
  options.encoding = "UTF-8"
}

masterディレクトリでaggregateJavadocタスクを実行するとmaster/build/docs/aggregateJavadoc/に全部入りjavadocが生成されてます。

../gradlew aggregateJavadoc

【この記事がお気に召しましたら、ぜひ以下のリツイートをお願いします!】