tutorial how create compile scala package executable-jar sbt

how - Scala SBT: jarra independiente



sbt scala (2)

La respuesta: hacer un frasco independiente con la herramienta de compilación simple parece ser lo que necesito, pero no tenía suficiente información para mí, así que este es un seguimiento.

(1) ¿Cómo adapto la respuesta a mi necesidad? No entiendo qué necesitaría ser cambiado.

(2) ¿Qué comando ejecuto para crear el frasco independiente?

(3) ¿Dónde puedo encontrar el frasco después de haberlo creado?

Lo que he intentado:

  • Pegando el código en la respuesta vinculada literalmente en mi archivo: project/build/dsg.scala . El archivo ahora tiene un

    class ForkRun(info: ProjectInfo) extends DefaultProject(info)

    (de antes, utilizado para ejecutar proyectos en una máquina virtual separada de SBT) y el nuevo:

    trait AssemblyProject extends BasicScalaProject

    De la respuesta enlazada.

  • También intenté pegar el cuerpo (todas las defs y el valor lazy val del AssemblyProject en el cuerpo de ForkRun .

Para crear un jar , ejecuté el package en el indicador SBT y obtuve:

[info] Packaging ./target/scala_2.8.1/dsg_2.8.1-1.0.jar ... [info] Packaging complete.

Así que intenté ejecutar el dsg_2.8.1-1.0.jar desde el shell a través de:

java -jar dsg_2.8.1-1.0.jar

Pero me sale:

Failed to load Main-Class manifest attribute from dsg_2.8.1-1.0.jar

¿Podría ser esto causado por tener múltiples puntos de entrada en mi proyecto? Selecciono de una lista cuando ejecuto run desde el indicador SBT. ¿Quizás necesito especificar el valor predeterminado al crear el paquete?



sbt-assembly es un complemento de sbt para crear un tarro independiente del proyecto sbt de Scala con todas sus dependencias.

Consulte esta publicación para más detalles con un ejemplo.