1
我有問題,弄清楚在我的堆棧項目中存在源代碼依賴關係有什麼問題。假設我想在我的項目中測試hsparql庫的修改版本。一個最小的設置是:如何處理堆棧中的子項目的依賴關係
stack new mytest simple
mkdir 3rdpary
cd 3rdpary
git clone https://github.com/robstewart57/hsparql
修改stack.yml
包括hsparql的地方和修改後的版本在我的項目:
packages:
- '.'
- 3rdparty/hsparql
# Dependency packages to be pulled from upstream that are not in the resolver
# (e.g., acme-missiles-0.3)
extra-deps:
- rdf4h-2.0.0
- hgal-2.0.0.2
如果我去的3rdParty/hsparql文件夾,我可以stack test
沒有任何問題,但是從我的項目的根我得到
$ stack test
hsparql-0.2.7: build (lib + test)
Progress: 1/2
-- While building package hsparql-0.2.7 using:
/home/cebrian/.stack/setup-exe-cache/x86_64-linux/setup-Simple-Cabal-1.22.5.0-ghc-7.10.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.22.5.0 build lib:hsparql test:test-hsparql --ghc-options " -ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
Logs have been written to: /home/cebrian/borralodedentro/stack-test/.stack-work/logs/hsparql-0.2.7.log
Preprocessing library hsparql-0.2.7...
In-place registering hsparql-0.2.7...
Preprocessing test suite 'test-hsparql' for hsparql-0.2.7...
/home/cebrian/borralodedentro/stack-test/3rdparty/hsparql/tests/Database/HSparql/ConnectionTest.hs:10:18:
Could not find module ‘Data.RDF.TriplesGraph’
Use -v to see a list of the files searched for.
出於某種原因,測試動作無法找到庫rdf4h
說」已被指定在原始圖書館和我自己的stack.yml
中。
我不知道我做錯了什麼,所以任何幫助將不勝感激。
的再現步驟是有點混亂:我懷疑有一個錯字('3rdpary' /'3rdparty'),而遺漏'CD mytest'作爲第二個步驟。你的錯誤信息也會報告'stack-test'作爲'3rdparty'的父目錄。 – sjakobi
當從項目根目錄調用堆棧測試時,堆棧使用'stack.yaml'中指定的'rdf4h-2.0.0'。該版本的'rdf4h'不包含'Data.RDF.TriplesGraph',因此是錯誤消息。當從'hsparql'目錄運行'stack test'時,堆棧使用不同的'stack.yaml'。 – sjakobi