64 votes

Puis-je accéder au nom et à la version de mon application Scala (tels que définis dans SBT) à partir du code ?

Je construis une application avec SBT (0.11.0) en utilisant une définition de build Scala comme ceci :

 object MyAppBuild extends Build {

  import Dependencies._

  lazy val basicSettings = Seq[Setting[_]](
    organization  := "com.my",
    version       := "0.1",
    description   := "Blah",
    scalaVersion  := "2.9.1",
    scalacOptions := Seq("-deprecation", "-encoding", "utf8"),
    resolvers     ++= Dependencies.resolutionRepos
  )

  lazy val myAppProject = Project("my-app-name", file("."))
    .settings(basicSettings: _*)
    [...]

J'emballe un .jar à la fin du processus.

Ma question est simple : existe-t-il un moyen d'accéder au nom de l'application ("my-app-name") et à la version ("0.1") par programmation à partir de mon code Scala ? Je ne veux pas les répéter à deux endroits si je peux m'en empêcher.

Toute orientation grandement appréciée!

48voto

Andrej Herich Points 697

Le nom et la version sont insérés dans le manifeste. Vous pouvez y accéder à l'aide de la réflexion Java à partir de la classe Package.

 val p = getClass.getPackage
val name = p.getImplementationTitle
val version = p.getImplementationVersion

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X