Haskell 有没有办法在包的源代码中获取Cabal包的版本?

Haskell 有没有办法在包的源代码中获取Cabal包的版本?,haskell,cabal,Haskell,Cabal,假设我有一个控制台程序,可以选择显示它的 版本目前每当我更新.cabal文件中的版本时,我都需要去 到源代码并更新当前的常量字符串表示形式 版本号也一样。这感觉违背了干燥原则,现在我 想知道,是否有可能获得中定义的项目版本 .cabal源代码中的文件?也许阴谋集团定义了一些CPP宏或 还有什么吗?事实上,阴谋集团允许访问您电脑中.Cabal文件中的信息 节目,, 您可以导入构建包期间存在的特殊模块, 像这样: import Paths_packagename (version) import D

假设我有一个控制台程序,可以选择显示它的 版本目前每当我更新
.cabal
文件中的版本时,我都需要去 到源代码并更新当前的常量字符串表示形式 版本号也一样。这感觉违背了干燥原则,现在我 想知道,是否有可能获得中定义的项目版本
.cabal
源代码中的文件?也许阴谋集团定义了一些CPP宏或
还有什么吗?

事实上,阴谋集团允许访问您电脑中
.Cabal
文件中的信息 节目,, 您可以导入构建包期间存在的特殊模块, 像这样:

import Paths_packagename (version)
import Data.Version (showVersion)

myVersion :: String
myVersion = showVersion version
模块
路径\u packagename
提供类型的
版本

.

这仍然是当前最好的方法吗?packagename导出的路径还有哪些?我找不到任何文档,因为它是自动生成的包。我希望有一个链接!一个小提示:将
更改为您的真实软件包名称。例如,如果您的包名为“my-awesome-package”