W ten sposób można dostać wersję aplikacji Play oraz nazwę aplikacji zdefiniowanych w build.sbt
name := "myApp"
version :="1.0.4"
Zawiadomienie to działa tylko w trybie prod. W trybie deweloperskim SBT udostępnia instancję JVM z aplikacją, a te wywołania zwracają coś innego.
Application.class.getPackage().getImplementationTitle()); // returns "myApp"
Application.class.getPackage().getImplementationVersion()); // returns "1.0.4"
W tym przypadku klasa aplikacji jest klasą zdefiniowaną w projekcie. Może to być dowolna klasa z twojego projektu.
UPDATE
zauważyłem, że ta metoda nie działa po wyjęciu z pudełka do gry> = 2.4.x
Aby rozwiązać ten problem dodać do swojej kompilacji.SBT
packageOptions += Package.ManifestAttributes(
"Implementation-Version" -> (version in ThisBuild).value,
"Implementation-Title" -> name.value
)
dwóch właściwości zostanie dołączona do MANIFEST.FM plik w budowie więc tytuł i wersja pakietu można odczytać z kodu.
FYI: Używam SBT rodzimych pakującego
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.3")
Dzięki, Działa to prawdopodobnie: Build.scala, a nie build.conf? – peter
Tak, oczywiście, dziękuję! Naprawiono to – Kapep
Każdy pomysł, jak to zrobić w Play 2.1? Otrzymuję ten sam błąd, co ta osoba: http: //stackoverflow.com/questions/14430088/play-framework-2-1-use-play-api-configuration-in-build-scala – takteek