Моя первоначальная задача - установить какой-либо объект, содержащий дистрибутивную версию моего приложения, установленного в данный момент. Это необходимо для возможности запрашивать текущую версию через http-конечную точку (разные клиенты используют разные версии).
Так что я подумал, что это идеальное задание для макроса. Проблема в том, что моя система сборки maven, и я подумал о том, чтобы передать номер версии (доступный в свойствах maven в pom.xml
в качестве опции компиляции для последующего извлечения ее из макроса).
object ProjectVersion {
def applicationVersion(): String = macro getVersion
def getVersion(c: Context)(): c.Expr[Unit] = {
//?
}
}
Погуглив проблему, не дало никакого разумного результата. Может кто-нибудь дать совет, если это вообще возможно?