Versioning & Packages

Maven Gradle変換

依存関係の宣言だけを入力し、XML、Groovy、Kotlin DSLから出力形式を選びます。

Maven Gradle変換

依存関係の入力

変換結果

このブラウザー内で変換します。入力をアップロードしたりリポジトリへ送信したりしません。

座標:g:a[:v[:classifier]]。呼び出しや座標は一行ずつ、囲みの波括弧は独立行に記述します。

上限65,536文字、200件。外部モジュールのリテラルのみで、プロジェクト全体は対象外です。

入力または設定が変わりました。再変換してから出力してください。

Maven Gradle変換は、ライブラリの説明に自分のプロジェクトと違う記法しか載っていないときに使えます。親POMやリポジトリ設定ではなく、必要な依存関係だけを取り出してください。

出力はプロジェクトへ追加するための断片です。構文を変換できても、そのバージョンの存在や依存関係の解決成功まで確認したことにはなりません。

Maven Gradle変換を使う理由

座標を一組として扱う

Maven Gradle変換では、groupId、artifactId、version、classifierをまとめて扱います。XMLの複数行を二種類のDSLへ変換し、DSL同士では対応する元のconfigurationを維持します。

XMLの色付き座標フィールドが二種類の短い宣言へ同じ並びで変わる図

クラスパスの違いを見落とさない

MavenのスコープとGradleのconfigurationは完全な一対一対応ではありません。ライブラリの公開APIやテスト依存を移す前に、結果に表示される対応上の注意を確認できます。

スコープと分類子の印は通過し、プロジェクト全体の形は入口で止まる図

座標と利用先を先に確認

01

第四要素の意味を確認する

自動判別はXML、対応するGradle呼び出し、一行一座標を受け付けます。座標はg:a[:v[:classifier]]の順序です。Mavenのpackagingを第四要素として貼り付けないでください。

02

公開する依存かを判断する

Mavenのcompileと裸の座標はimplementationが既定です。Javaライブラリの利用者へ公開する依存ならapiを選びます。DSL同士の変換では既存のconfigurationが優先されます。

03

更新待ちの結果を持ち出さない

自動変換は編集後350ミリ秒で動きます。オフにするとCtrl/Cmd + Enterでも実行できます。入力や設定を変えるとコピーと保存が無効になり、最新結果の生成後に使えるようになります。

形式を変えても残る宣言情報

GradleからMavenへの逆変換

implementation、api、compileOnly、runtimeOnlyと三種類のテスト構成に対応します。XMLでは既定のcompileを省略し、他の対応スコープを書き出します。

GroovyとKotlin DSL

Groovyは単一引用符、Kotlin DSLは括弧付きの二重引用符を出力します。この二形式の間ではapiやtestRuntimeOnlyをそのまま保ち、Mavenのスコープへ先にまとめません。

分類子と管理されたバージョン

座標の第四要素はXMLのclassifierになります。バージョン省略は維持しますが、既存のBOMやプラットフォームによる管理が必要と表示します。分類子を指定するときはバージョンも必須です。

順序を保つ一括変換

最大200件を入力順に変換します。重複は削除しません。出力にdependenciesの囲みを付けるか選べますが、元のコメントと空白は引き継ぎません。

断片の変換としての対応範囲

プロジェクト全体は対象外
pom.xmlやbuild.gradle全体には、プラグイン、親設定、profiles、リポジトリが含まれます。これらは拒否します。全体の移行には専用ツールを使い、実際にビルドしてください。
外部モジュールのリテラルのみ
変数、補間、動的バージョン、範囲、マップ記法、クロージャー、project()、files()、platform()、バージョンカタログは非対応です。座標は英数字、下線、ピリオド、ハイフンのみを受け付けます。
情報を黙って捨てない
optional、exclusions、system/import、jar以外のtypeはエラーになります。未知の要素や属性、DTD、処理命令も拒否します。一部だけを成功結果として書き出すことはありません。
スコープの意味を再確認する
compileはimplementationまたはapi、providedはcompileOnly、runtimeはruntimeOnly、testはtestImplementationへ対応します。逆変換では区別が統合され、テストのクラスパスや公開時の動作まで同一とは限りません。
上限と行単位の構文
上限は65,536文字、200件です。Gradle呼び出しと座標は一行ずつ、囲みの波括弧は独立行に置きます。実在するバージョンの検索、推移的依存や競合の解決は行いません。

Maven Gradle変換のよくある質問

MavenのtypeとscopeはGradleでどう指定しますか?

四つの基本スコープをルール欄の対応で変換します。typeは省略またはjarのみです。test-jarやpomは分類子やプラットフォームの意味を伴うため、そのまま置き換えずエラーにします。

バージョンのない依存関係も変換できますか?

はい。group:artifactとversionのないXMLに対応します。出力もバージョンを省略するので、利用先で既存のBOM、プラットフォーム、依存関係管理を設定してください。

${spring.version}のようなプロパティは使えますか?

使えません。先に具体的な値へ解決してから入力してください。MavenのプロパティをGradleの文字列へ移すだけでは同じ意味にならず、ここではビルドスクリプトを評価しません。

Groovyのbuild.gradleをKotlinのbuild.gradle.ktsに変換するには?

対応する依存関係の呼び出しを入力し、出力をKotlinにします。括弧と引用符を生成しますが、タスク、プラグインや任意のGroovyコードの移行は別途必要です。

GradleからMavenへ変換するオンラインツールはありますか?

このページはGradleからMavenへ依存関係の断片を変換できます。build.gradle全体から完全なPOMを作る機能ではなく、リポジトリ、公開設定、モジュール構成は別に移行します。

解決しない問題がありますか?

変換後の宣言をプロジェクトで確認

Maven Gradle変換で最新結果を作り、スコープの注意と件数を確認してから、必要なdependenciesブロックへ追加してください。