Подтвердить что ты не робот

Миграция из Maven в SBT

Как вы знаете, SBT в какой-то мере совместим с Maven - SBT распознает простые MOM MOV и может использовать указанные в них зависимости и репозитории. Тем не менее, SBT wiki говорит, что если встроенная зависимость указана в определении проекта SBT, POM будет проигнорирован (так что использование обоих в этом случае невозможно)

Конфигурации Maven и Ivy (pom.xml и ivy.xml) игнорируются, когда inline объявления зависимостей.

Кто-нибудь знает, существует ли какой-либо конвертер из Maven POM для определения проекта SBT (перевод POM XML в код проекта Scala)? Я подумываю написать такой script (который поможет мигрировать мои старые проекты Scala/Maven в SBT), но сначала хочу знать, если эта функциональность уже существует.

4b9b3361

Ответ 1

Конвертер слишком силен для этого взлома, но я написал script, чтобы взять блок <dependencies> и вывести стили стилей SBT: http://gist.github.com/388334

Ответ 2

Все приведенные выше советы имели для меня проблему, что свойства не были решены, и поскольку мы активно используем управление dependencyManagement от родительских попов, я надеялся на то, что на самом деле может полностью понять 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"

Ответ 3

Мне не удалось найти недокументированную возможность в SBT, которая позволяет делать такие преобразования (POM → определение проекта), и придумал запись очень простой script, который создает файл сборки SBT с repos/dependencies из POM.

Если вам просто нужно преобразовать зависимости Maven/XML в SBT/ Scala, вы можете использовать этот script, предоставленный @retronym

Ответ 4

Не конвертер, но пошаговое руководство по перемещению проекта с несколькими моделями от Maven до SBT можно найти здесь .

Довольно приятно понять, что на самом деле происходит, и обеспечить вам достаточный контроль над процессами.

Ответ 5

Я написал проект mvn2sbt для преобразования проекта java maven в проект sbt.

Ответ 6

Посмотрите проект CodaHale Maven-SBT на Git -Hub. В принципе, CodaHale поместил IVY из SBT и заменил его Maven, поэтому задачи, связанные с POM, должны быть более совместимыми/гибкими.

Ответ 7

Я написал еще один взлом для преобразования между pom.xml и build.sbt. Это полезно для преобразования большей части того, что меня интересует.

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

Ответ 8

У меня была такая же проблема и я создал решение в javascript, к которому вы можете получить доступ:  http://www.maven-to-sbt.de/