Đây là cách bạn có thể nhận được phiên bản ứng dụng Play và tên ứng dụng quy định tại bạn build.sbt Thông báo
name := "myApp"
version :="1.0.4"
này chỉ hoạt động trong chế độ PROD. Trong chế độ dev, SBT chia sẻ một cá thể JVM với ứng dụng và các cuộc gọi đó trả về một cái gì đó khác.
Application.class.getPackage().getImplementationTitle()); // returns "myApp"
Application.class.getPackage().getImplementationVersion()); // returns "1.0.4"
Trong trường hợp này Lớp ứng dụng là lớp được xác định trong dự án của bạn. Nó có thể là bất kỳ lớp học nào từ dự án của bạn.
CẬP NHẬT
tôi nhận thấy rằng phương pháp này không làm việc ra khỏi hộp cho Play> = 2.4.x
Để khắc phục vấn đề này thêm để xây dựng của bạn.sbt
packageOptions += Package.ManifestAttributes(
"Implementation-Version" -> (version in ThisBuild).value,
"Implementation-Title" -> name.value
)
Hai thuộc tính này sẽ được thêm vào tệp MANIFEST.FM trong phiên bản của bạn để tiêu đề và phiên bản gói có thể được đọc từ mã.
FYI: Tôi sử dụng SBT mẹ đẻ đóng gói
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.3")
Cảm ơn, Bạn có thể có nghĩa là Build.scala và không phải build.conf? – peter
Có tất nhiên, cảm ơn! Đã sửa lỗi – Kapep
Bất kỳ ý tưởng nào về cách thực hiện tác vụ này trong Play 2.1? Tôi nhận được lỗi giống như người này: http: //stackoverflow.com/questions/14430088/play-framework-2-1-use-play-api-configuration-in-build-scala – takteek