44

ご存じのように、SBT は何らかの形で Maven と互換性があります。SBT は単純な Maven POM を認識し、それらに指定された依存関係とリポジトリを使用できます。ただし、SBT wikiによると、SBT プロジェクト定義でインライン依存関係が指定されている場合、POM は無視されます (したがって、この場合両方を使用することは不可能です)。

インライン依存関係宣言が存在する場合、Maven および Ivy 構成 (pom.xml および ivy.xml) は無視されます。

Maven POM から SBT プロジェクト定義への任意の種類のコンバーターが存在するかどうか (POM の XML をプロジェクト定義の Scala コードに変換する)、誰かが知っていますか? そのようなスクリプトを作成することを検討しています (古い Scala/Maven プロジェクトを SBT に移行するのに役立ちます) が、この機能が既に存在するかどうかを最初に知りたいです。

4

8 に答える 8

32

コンバーターはこのハックの用語としては強すぎますが、<dependencies>SBT スタイルの deps のブロックを取得して出力するスクリプトを作成しました: http://gist.github.com/388334

于 2010-06-04T10:19:58.037 に答える
20

上記のすべてのヒントには、プロパティが解決されないという問題がありました。親 pom からの依存関係管理を多用しているため、実際に Maven を完全に理解できるものを望んでいました。Maven から依存関係を出力し、最上位の項目を取得して、グループ、アーティファクト、バージョン、およびスコープに対して単純な正規表現を実行する単純なスクリプトレットをまとめました (アーティファクト タイプは無視されます)。

mvn dependency:tree | grep "] +" | perl -pe 's/.*\s([\w\.\-]+):([\w\.\-]+):\w+:([\w\.\-]+):(\w+).*/libraryDependencies += "$1" % "$2" % "$3" % "$4"\n /' 

これを project/build.sbt に直接パイプしました。サンプル出力は次のとおりです (sbt 行の間に空白を入れることを忘れないでください)

libraryDependencies += "org.springframework" % "spring-core" % "3.1.0.RELEASE" % "compile"

libraryDependencies += "se.scalablesolutions.akka" % "akka-actor" % "1.3.1" % "compile"

libraryDependencies += "se.scalablesolutions.akka" % "akka-spring" % "1.3.1" % "compile"
于 2012-10-25T04:48:24.077 に答える
6

コンバーターではありませんが、マルチモジュール プロジェクトを Maven から SBT に移行するためのステップバイステップ ガイドは、こちらにあります

実際に何が起こっているのかを理解し、プロセスをかなり制御できるようにするのに非常に便利です..

于 2012-02-06T11:29:57.743 に答える
5

そのような変換 (POM -> プロジェクト定義) を可能にする文書化されていない SBT の機能を見つけることができず、POMからリポジトリ/依存関係を持つSBT ビルド ファイルを作成する非常に単純なスクリプトを作成することになりました。

Maven/XML の依存関係を SBT/Scala に変換する必要がある場合は、 @retronymが提供するこのスクリプトを使用できます。

于 2010-06-04T15:09:09.943 に答える
4

java maven プロジェクトを sbt プロジェクトに変換するための mvn2sbt プロジェクトを作成しました

于 2014-06-02T14:28:39.863 に答える
1

pom.xmlと の間で変換するためのさらに別のハックを書きbuild.sbtました。私が興味を持っているものの大部分を変換するのに役立ちます。

https://gist.github.com/schmmd/5050790

于 2013-02-27T21:42:59.497 に答える
1

私はちょうど同じ問題を抱えていて、あなたがここにアクセスできるjavascriptで解決策を作成しました: http://www.maven-to-sbt.de/

于 2015-05-31T20:00:40.223 に答える