2017-10-17 24 views
0

私はthe servant tutorialに従おうとしていますが、私はCabalエラーUnknown fields: build-tool-dependsに入っています。Cabalエラーサーバントチュートリアルに従うために「不明なフィールド:build-tool-depends」

name:    tutorial 
version:    0.10 
synopsis:   The servant tutorial 
homepage:   http://haskell-servant.readthedocs.org/ 
license:    BSD3 
license-file:  LICENSE 
author:    Servant Contributors 
maintainer:   [email protected] 
build-type:   Simple 
cabal-version:  >=1.10 

library 
    exposed-modules:  Server 
    build-depends:  base == 4.* 
        , base-compat 
        , text 
        , aeson 
        , aeson-compat 
        , blaze-html 
        , directory 
        , blaze-markup 
        , containers 
        , servant == 0.11.* 
        , servant-server == 0.11.* 
        , servant-client == 0.11.* 
        , servant-docs == 0.11.* 
        , servant-js >= 0.9 && <0.10 
        , warp 
        , http-api-data 
        , http-media 
        , lucid 
        , time 
        , string-conversions 
        , bytestring 
        , attoparsec 
        , mtl 
        , random 
        , js-jquery 
        , wai 
        , http-types 
        , transformers 
        , markdown-unlit >= 0.4 
        , http-client 
    default-language: Haskell2010 
    ghc-options:   -Wall -pgmL markdown-unlit 
    build-tool-depends: markdown-unlit:markdown-unlit 

test-suite spec 
    type: exitcode-stdio-1.0 
    ghc-options: -Wall 
    default-language: Haskell2010 
    hs-source-dirs: test 
    main-is: Spec.hs 
    other-modules: JavascriptSpec 
    build-depends: base == 4.* 
       , tutorial 
       , hspec 
       , hspec-wai 
       , string-conversions 

cabal buildこれを構築することができるはずです:これは私のtutorial.cabalファイル(私はservant's github repoからこれを得た)のですか?これは私が出力を取得されています

cabal-install version 1.24.0.2 
compiled using version 1.24.2.0 of the Cabal library 

私は、このエラーのために私のApiType.hsファイルの問題を考えていませんが、ここでは念のためです:

➜ servant cabal build 
Package has never been configured. Configuring with default flags. If this 
fails, please run configure manually. 
Warning: tutorial.cabal: Unknown fields: build-tool-depends (line 46) 
Fields allowed in this section: 
... 

cabal --versionが与える

{-# LANGUAGE DataKinds #-} 
{-# LANGUAGE DeriveGeneriC#-} 
{-# LANGUAGE FlexibleInstances #-} 
{-# LANGUAGE GeneralizedNewtypeDeriving #-} 
{-# LANGUAGE MultiParamTypeClasses #-} 
{-# LANGUAGE OverloadedStrings #-} 
{-# LANGUAGE ScopedTypeVariables #-} 
{-# LANGUAGE TypeOperators #-} 

module Server where 

import Prelude() 
import Prelude.Compat 

import Control.Monad.Except 
import Control.Monad.Reader 
import Data.Aeson.Compat 
import Data.Aeson.Types 
import Data.Attoparsec.ByteString 
import Data.ByteString (ByteString) 
import Data.List 
import Data.Maybe 
import Data.String.Conversions 
import Data.Time.Calendar 
import GHC.Generics 
import Lucid 
import Network.HTTP.Media ((//), (/:)) 
import Network.Wai 
import Network.Wai.Handler.Warp 
import Servant 
import System.Directory 
import Text.Blaze 
import Text.Blaze.Html.Renderer.Utf8 
import qualified Data.Aeson.Parser 
import qualified Text.Blaze.Html 

type UserAPI = 
     "users" :> Get '[JSON] [User] 
-- :<|> "user" :> Capture "id" Integer :> Get '[JSON] User 
-- :<|> "user" :> ReqBody '[JSON] User :> Post '[JSON] User 

data User = User { 
    id :: Int, 
    name :: String, 
    age :: Int, 
    email :: String, 
    registration_date :: UTCTime 
} 

instance ToJSON User 

users1 :: [User] 
users1 = 
    [ User 1 "Isaac Newton" 372 "[email protected]" (fromGregorian 1683 3 1) 
    , User 2 "Albert Einstein" 136 "[email protected]" (fromGregorian 1905 12 1) 
    ] 

server1 :: Server UserAPI 
server1 = return users1 

userAPI :: Proxy UserAPI 
userAPI = Proxy 

app1 :: Application 
app1 = serve userAPI server1 

main :: IO() 
main = run 8081 app1 

どのようなヘルプも大歓迎です!

+1

もっと新しいバージョンのCabal-installが必要な場合もあります。 'cabal update'の後に' cabal install cabal-install'を実行して(うまくいけば)最新バージョンを入手するか、https://www.haskell.org/cabal/download.htmlから入手してください – danidiaz

答えて

2

build-tool-dependsは、2.0の新しいフィールドです。 build-toolsを置き換え、より明確なセマンティクス(#3708、#1541)を持っているWhat's new in Cabal/cabal-install 2.0

build-tool-dependsフィールドを参照してください。 cabal-installは必要なビルドツールをインストールし、PATHに自動的に追加します。

関連する問題