Translate

Mostrando las entradas con la etiqueta SDKMAN!. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SDKMAN!. Mostrar todas las entradas

viernes, 3 de junio de 2022

Crear un proyecto Spring boot, con Scala y Sbt



La idea es crear un proyecto spring boot, con scala y sbt. (ya lo dice el titulo)

Primero hacemos un proyecto hello word con sbt (ojo tienen que tener sbt instalado, esta bueno instalarlo con sdkman) 

sbt new scala/hello-world.g8

Luego, tenemos que agregar nuestra dependencia web de spring boot en build.sbt : 

// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web

libraryDependencies += "org.springframework.boot" % "spring-boot-starter-web" % "2.6.7"

libraryDependencies += "org.springframework.boot" % "spring-boot-configuration-processor" % "2.6.7"


Deberían de modificar bastante el buld.sbt en mi caso me quedo así :


scalaVersion := "2.13.8"

organization := "com.miCompania"
name := "ejemplo"
version := "1.0"


libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.1"

// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
libraryDependencies += "org.springframework.boot" % "spring-boot-starter-web" % "2.6.7"
libraryDependencies += "org.springframework.boot" % "spring-boot-configuration-processor" % "2.6.7"

Ahora lo que debemos de hacer es crear un paquete y mover el main a ese paquete para luego modificarlo de tal forma que llame a run de spring boot : 

package com.miCompania

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication


@SpringBootApplication
class Application

object Main extends App {
  SpringApplication.run(classOf[Application], args:_*)
}

Ojo, tienen que tener el main en un paquete sino no anda. 

Por ultimo hacemos nuestro endpoint, en este ejemplo voy a hacer un hola mundo, comun. Pero en este punto podemos utilizar todas las ventajas de spring boot : 

package com.assembly.endpoint

import org.springframework.http.ResponseEntity

import org.springframework.web.bind.annotation.{PathVariable, RequestMapping, RequestMethod, RestController}


@RestController

@RequestMapping(Array("/v1"))

class GreeterEndPoint {


  @RequestMapping(value=Array("/hello/{name}"), method = Array(RequestMethod.GET))

  def sayHello(@PathVariable(name = "name") name:String): ResponseEntity[String] =

    ResponseEntity.ok(s"Hello ${name}")

}


Lo puse en otro paquete, esto solo para que quede más ordenado, y listo!!! 

domingo, 26 de junio de 2016

Sdkman, The Software Development Kit Manager


SDKMAN! es una herramienta para la gestión de versiones paralelas de múltiples kits de desarrollo de software en la mayoría de los sistemas basados en Unix. Proporciona una interfaz de línea conveniente de comandos (CLI) y la API para la instalación, distribución, eliminar y listar los candidatos.

Sdkman nos permite instalar software en nuestra sdk desintalarlo, chequear versiones. Podemos instalar lenguajes que corren sobre la jdk o sdks de desarrollo como Grails, SBT, etc.

Para instalarlo debemos abrir una terminal y debemos escribir:

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

luego chequear la instalación con el comando:

$ sdk version

Obtener ayuda:  sdk help
Listar lo que podemos instalar: sdk list

Para instalar un entorno por ejemplo: sdk install gradle
Instalar una versión determinada: sdk install scala 2.11.7
Desinstalar una versión determinada: sdk remove scala 2.11.6
Ver las versiones de un sofware: sdk list groovy
Usar una versión determinada: sdk use scala 2.11.6

Que más queres?

SDKMAN! es distribuido bajo licencia Open Source Software: Apache 2

Dejo link: http://sdkman.io/