gradle は ruby の gem コマンドや python の pip コマンドにあたるやつです。
- maven の方が IDE で補完がききやすいです。
- maven が出力するエラーメッセージは意味不明であり、頭を抱えるほかありません
- maven の機能を拡張するには plugin を書く必要がありますが、plugin をいったん local repository にデプロイしないと試せず、極めて苦痛です。
- gradle は groovy で容易に拡張できます
maven は、maven でできる基本的な機能だけを利用している分には快適なんですが、ちょっとこったことをしようとおもうと途端に難易度があがります。
基本的には build.gradle と settings.gradle の2種類を記述すればOKです。 build.gradle がメインの設定ファイルであり、settings.gradle はサブプロジェクトの include ができます。
以下のように設定可能です。
plugins {
id("java")
}
tasks.compileJava {
options.compilerArgs.addAll(listOf(
"-Werror",
"-Xlint:all",
"-Xlint:-processing", // Don't fail for annotations not claimed by annotation processors.
"-Xlint:-serial", // Don't fail for serialVersionUID warnings.
"-parameters" // Capture method parameter names in classfiles.
))
}
しかし、これだけでは IntelliJ IDEA が読んでくれないため、
IDEA-161936 としてイシュー登録されています。
弊社の場合では nexus repository を運用していますので、社内で利用したいレポジトリはこちらにアップロードすればOKです。 社内レポジトリにリリースする場合には、合わせて source jar と doc jar もリリースすることをお忘れなく。
全世界にむけてリリースする場合、Maven central にリリースするのが良いでしょう。
リリース手順については tagomoris さんのエントリが詳しいのでこちら読むと良いでしょう。こちら読めばすぐにできます。
(jCenter に公開する方法もあるみたいですが、私はやったことがありません。)
実現可能ですが、おすすめしません。gradle/maven は取得元 repository を追加するとすべてのライブラリについて各レポジトリをスキャンすることになってしまい、全体的にビルド速度が低下します。そのため、野良レポジトリは嫌われています。
自分も過去に試したことがありますが、そのような理由から中止しました
https://github.com/ben-manes/gradle-versions-plugin
依存関係のうち、より新しいバージョンが存在しているライブラリを検出します。
2016年9月時点では、実用的ではないです。 補完なども groovy で書く時に比べて大差ないです。