java - ioutils - Migrando de Maven a SBT
maven java io (8)
Acabo de tener el mismo problema y he creado una solución en javascript a la que puede acceder aquí: http://www.maven-to-sbt.de/
Como saben, SBT es compatible con Maven de alguna manera: SBT reconoce los POM de Maven simples y puede usar dependencias y repositorios especificados en ellos. Sin embargo, SBT wiki dice que, si la dependencia en línea se especifica en la definición del proyecto SBT, POM será ignorado (por lo que usar ambos en este caso es imposible):
Las configuraciones de Maven e Ivy (pom.xml e ivy.xml) se ignoran cuando hay presentes declaraciones de dependencia en línea.
¿Alguien sabe si existe algún tipo de convertidor de la definición de proyecto Maven POM a SBT (traducción del XML de POM a la definición del proyecto del código Scala)? Estoy considerando escribir este script (que me ayudará a migrar mis antiguos proyectos de Scala / Maven a SBT), pero quiero saber primero si esta funcionalidad ya existe.
Eche un vistazo al proyecto Maven-SBT de CodaHale en Git-Hub. Básicamente, CodaHale ha cambiado IVY de SBT y lo ha reemplazado por Maven, por lo que las tareas relacionadas con POM deberían ser más compatibles / flexibles.
Escribí el proyecto mvn2sbt para convertir el proyecto maven maven al proyecto sbt.
Escribí otro truco para convertir entre pom.xml
y build.sbt
. Es útil para convertir la mayor parte de lo que me interesa.
No logré encontrar una capacidad no documentada en SBT que permita realizar tales conversiones (POM -> definición de proyecto), y me he propuesto escribir un script muy simple que crea un archivo de compilación SBT con repositorios / dependencias de POM .
En caso de que solo necesite convertir dependencias Maven / XML en SBT / Scala, puede usar http://gist.github.com/388334 provisto por
No se puede encontrar un convertidor, sino una guía paso a paso para mover un proyecto de varios módulos de Maven a SBT.
Muy bueno para entender lo que realmente sucede y garantizar que tengas una buena cantidad de control sobre el proceso.
Todos los consejos anteriores tenían el problema para mí de que las propiedades no se habían resuelto y, a medida que hacíamos un uso intensivo de la gestión de dependencias de los poms de padres, esperaba algo que realmente pudiera comprender por completo a maven. Arreglé un scriptlet simplista que genera las dependencias de maven y simplemente toma los elementos de nivel superior y luego hace una expresión regular simple para el grupo, artefacto, versión y alcance (se ignora el tipo de artefacto)
mvn dependency:tree | grep "] +" | perl -pe ''s/.*/s([/w/./-]+):([/w/./-]+):/w+:([/w/./-]+):(/w+).*/libraryDependencies += "$1" % "$2" % "$3" % "$4"/n /''
Llamé esto directamente a project / build.sbt. El resultado de la muestra es (recuerde mantener espacios vacíos entre las líneas de 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"
Convertidor es un término demasiado fuerte para este truco, pero escribí un guión para tomar un bloque de <dependencies>
y dar deps de estilo SBT: http://gist.github.com/388334