Utiliser SBT derrière un proxy d’entreprise

J’essaye depuis quelques temps de faire fonctionner SBT derrière un proxy d’entreprise ( avec authentification) . Vu que je ne veux pas polluer le serveur NEXUS existant, j’ai essayé de tout faire un local …. et là c’est le drame.

g1366824328707416474

Jusqu’à présent, j’utilisais MAVEN et le plugin SCALA pour répondre aux besoins du BUILD. J’ai néanmoins trouvé une autre solution, tout aussi sale…. Installer un serveur NEXUS sur le poste de travail et s’en servir comme proxy « intelligent ».

J’ai fait la configuration suivante :

Dessin1

Je ne vais pas décrire ici l’installation de nexus tellement c’est simple.

Dans la configuration de nexus, le proxy se configure assez simplement dans la partie server

J’ai ajouté les virtual repositories suivants :

  • ivy-releases-1: https://dl.bintray.com/sbt/sbt-plugin-releases/
  • ivy-releases-2: https://dl.bintray.com/typesafe/ivy-releases/
  • mvn-typesafe-release-1: http://repo.typesafe.com/typesafe/maven-releases/
  • mvn-typesafe-release-2: http://repo.typesafe.com/typesafe/releases/

et crée deux groupes l’un pour les repo ivy (ivy-releases) et l’autre pour maven (mvn-releases)

Enfin, comme l’indique la documentation, j’ai configuré le fichier ~.sbt/repositories de la manière suivante :

Enfin, lorsque vous exécutez sbt, celui-ci utilisera automatiquement votre proxy NEXUS qui lui est capable de discuter avec un proxy d’entreprise.

En espérant que ça serve à d’autres…

Ma configuration SBT

SBT est l’outil standard de build de l’écosystème scala ( et pas que… ).1158012

Afin de « l’acclimater » à la vie en entreprise, j’ai du faire quelques modifications. Elles sont adaptées pour les configurations des développeurs utilisant:

  • maven
  • un référentiel partagé (nexus, artifactory)

Pour info, j’ai souhaité déplacer le cache ivy dans un autre répertoire. Par défaut, c’est dans le répertoire $HOME/.ivy.

Créer le fichier sbt.boot.properties dans le répertoire $SBT_HOME/bin

Dans le fichier sbt.bat j’ai ajouté au début le fichier suivant :