Ich habe Probleme herauszufinden, was falsch ist mit einer Abhängigkeit von Quellcode in meinem Stack-Projekt. Angenommen, ich möchte eine modifizierte Version der Bibliothek hsparql in meinem Projekt testen. Ein minimales Setup wäre:Wie mit Abhängigkeiten von Teilprojekten im Stapel umgehen
stack new mytest simple
mkdir 3rdpary
cd 3rdpary
git clone https://github.com/robstewart57/hsparql
Ändern stack.yml
die lokale und modifizierte Version von hsparql in meinem Projekt gehören:
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
Wenn gehe ich zum 3rdparty/hsparql Ordner kann ich stack test
ohne Probleme ich bekommen, aber von der Wurzel meines Projekts
$ 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.
aus irgendeinem Grund ist die Testaktion nicht in der Lage, die Bibliothek zu finden rdf4h
, dass‘ s wurde sowohl in der ursprünglichen Bibliothek als auch in meiner eigenen stack.yml
angegeben.
Ich habe keine Ahnung, was ich falsch mache, so dass jede Hilfe geschätzt wird.
Die Wiedergabe Schritte sind ein wenig verwirrend: Ich vermute, es ist ein Tippfehler ('3rdpary' /' 3rdparty') und eine fehlende 'cd mytest' als zweiter Schritt . Auch Ihre Fehlermeldungen melden 'stack-test' als übergeordnetes Verzeichnis von' 3rdparty'. – sjakobi
Beim Aufruf von 'stack test' aus dem Projektstamm verwendet der Stack' rdf4h-2.0.0' wie in 'stack.yaml' angegeben. Diese Version von 'rdf4h' enthält nicht 'Data.RDF.TriplesGraph', also die Fehlermeldung. Wenn stack test im 'hsparql'-Verzeichnis ausgeführt wird, verwendet stack einen anderen' stack.yaml'. – sjakobi