在玩semver和semver-range时,我因为模块名称冲突而陷入困境。
作为临时修复,我将semver-range repo分叉以重命名模块(第一次尝试可用here)。我按Data.SemVer*
重命名了每个模块Data.SemVer.Range*
。
我没有更改文件夹结构,只更改了cabal文件:
Exposed-modules: Data.SemVer.Range
other-modules: Data.SemVer.Range.Parser
, Data.SemVer.Range.Types
尝试构建项目我有以下错误消息:
Building semver-range-0.2.0...
Preprocessing library semver-range-0.2.0...
cabal: can't find source for Data/SemVer/Range in src, dist/build/autogen
我做了第二次尝试(可用here)。我使用Data.SemVer*
Data.SemVerRange*
我还更改了cabal文件,并将src/Data/SemVer.hs
重命名为src/Data/SemVerRange.hs
。
第二次尝试工作正常,但我很好奇第一次尝试时我做错了什么。
我是否错过了一些明显的东西?
答案 0 :(得分:2)
我对你所做的重命名的确切顺序有点困惑,但无论如何......看看你的第一次尝试,我看到一个文件说
32
但是,文件名为module Data.SemVer.Range.Types where
,不匹配。这就是为什么它不起作用;文件路径与模块路径不匹配。
如果你创建了一个名为src/Data/SemVer/Types.hs
的文件夹并将文件移到那里,那应该可以。