有没有办法在包的源代码中获取 Cabal 包的版本?
Is there a way to get version of Cabal package in source code of the package?
假设我有一个控制台程序,可以选择显示它的
版本。目前,每当我更新 .cabal
文件中的版本时,我都需要去
到源代码并更新常量——当前的字符串表示
版本号也是。这感觉违反了 DRY 原则,现在我
想知道,是否有可能获得我的项目中定义的版本
.cabal
来自源代码的文件?也许 Cabal 定义了一些 CPP 宏或者
还有别的吗?
事实上,Cabal 允许访问您的 .cabal
文件中的信息
程序。 According to Cabal documentation,
您可以导入在构建包期间存在的特殊模块,
像这样:
import Paths_packagename (version)
import Data.Version (showVersion)
myVersion :: String
myVersion = showVersion version
模块Paths_packagename
提供version
类型
Version.
假设我有一个控制台程序,可以选择显示它的
版本。目前,每当我更新 .cabal
文件中的版本时,我都需要去
到源代码并更新常量——当前的字符串表示
版本号也是。这感觉违反了 DRY 原则,现在我
想知道,是否有可能获得我的项目中定义的版本
.cabal
来自源代码的文件?也许 Cabal 定义了一些 CPP 宏或者
还有别的吗?
事实上,Cabal 允许访问您的 .cabal
文件中的信息
程序。 According to Cabal documentation,
您可以导入在构建包期间存在的特殊模块,
像这样:
import Paths_packagename (version)
import Data.Version (showVersion)
myVersion :: String
myVersion = showVersion version
模块Paths_packagename
提供version
类型
Version.