Publié le 15 Juin 2017

SBT permet de définir des sous-modules (ou sous-projets) à l'intérieur d'un seul projet.

Cela se fait en utilisant des sous-répertoires pour chaque sous-module puis en déclarant chacun d'eux dans le build.sbt.

lazy val commonSettings = Seq(
  organization := "io.grpc.reactive",
  version := "0.0.0"
)

lazy val runtime = (project in file("runtime"))
  .settings(
    commonSettings,
    scalaVersion := "2.12.2",
    crossScalaVersions := Seq("2.12.2", "2.11.11"),
    name := "GrpcMonixRuntime",
    libraryDependencies ++= Seq(
      "com.trueaccord.scalapb" %% "scalapb-runtime-grpc" % "0.6.0-pre5",
      "io.monix"               %% "monix"                % "2.3.0"
    )
  )

lazy val generator = (project in file("generator"))
  .settings(
    commonSettings,
    scalaVersion := "2.10.6",
    name := "GrpcMonixGenerator",
    libraryDependencies += "com.trueaccord.scalapb" %% "compilerplugin" % "0.6.0-pre5"
  )

Le problème est que par défaut SBT utilise la même version de scala pour tous les sous-modules bien que les settings de chaque sous-module spécifient bien des versions différentes.

Même en compilant avec '+compile' on n'obtient de compilation avec les versions désirées.

La solution consiste à preciser explicitement la version de scala à utiliser:

sbt '++ 2.10.6 generator/compile'

Voir les commentaires

Rédigé par Bliz

Publié dans #Scala

Repost 0

Publié le 8 Juin 2017

Pour configurer un serveur HTTP avec TLS il est nécessaire d'avoir un certificat (fichier .p12 dans mon cas). 

Je parle ici de certificat auto-généré et par conséquent non-vérifié par une autorité de certification. C'est une approche tout à fait valable pour des tests mais non recommandée en production.

Un fichier .p12 combine à la fois un certificat et une clé privé. Il faut donc commencer par générer ces 2 éléments:

openssl req -newkey rsa:2018 -nodes -keyout key.pem -x509 -days 365 -out server.pem

Cela génère 2 fichiers:

  • key.pem: la clé privée
  • server.pem: le certificat

Il ne reste plus qu'à combiner les 2 dans un seul ficher .p12 avec la commande suivante:

openssl pkcs12 -inkey key.pem -in server.pem -export -out server.p12

Une fois le fichier server.p12 générer on peut le vérifier avec la commande:

openssl pkcs12 -in server.p12 -noout -info

Voir les commentaires

Rédigé par Bliz

Publié dans #SSH, #Linux

Repost 0