几天来,我一直在尝试将fluent-mysql依赖项添加到我的vapor项目中,以便从项目中查询我独立的mysql数据库。然而,我似乎总是得到某种类型的错误,例如,当我尝试vapor update时,它永远不会完成。(我已经离开它几个小时了),我也尝试过swift package update,但出现了同样的错误。我现在可以使用vapor update了,但是我仍然收到两个错误'mysql/udf_registration_types.h' file not found with <angled> include; use "quotes" instead
和Could not build Objective-C module 'CMySQL'
唯一更改的是package.swift,它现在是这样的:
import PackageDescription
let package = Package(
name: "iPadLocator",
products: [
.library(name: "App", targets: ["App"]),
.executable(name: "Run", targets: ["Run"])
],
dependencies: [
.package(url: "https://github.com/vapor/vapor.git", .upToNextMajor(from: "2.2.0")),
.package(url: "https://github.com/vapor/leaf-provider.git", .upToNextMajor(from: "1.1.0")),
.package(url: "https://github.com/vapor/fluent-mysql.git", .upToNextMajor(from: "2.0.0"))
],
targets: [
.target(
name: "App",
dependencies: ["Vapor", "LeafProvider", "MySQLDriver"],
exclude: ["Config", "Database", "Public", "Resources"]
),
.target(name: "Run", dependencies: ["App"]),
.testTarget(name: "AppTests", dependencies: ["App", "Testing"])
]
)提前感谢您的帮助。这是我的第一个stackOverflow问题,如果这个问题很糟糕,我很抱歉。我正在运行vapor Toolbox 3.1.7和Vapor framework 2.4.4,我已经安装了mysql和cmysql,并且是最新的。
发布于 2018-07-31 17:42:26
您想使用Vapor 2还是Vapor 3?(忽略工具箱的版本)。如果你想要Vapor2,那么你所拥有的就是正确的--你只需要把依赖从MySQLDriver改为MySQLProvider。
如果您想要Vapor 3,那么您需要将所有依赖项更改为如下所示
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "TILApp",
dependencies: [
// A server-side Swift web framework.
.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),
.package(url: "https://github.com/vapor/fluent-mysql.git", from: "3.0.0"),
.package(url: "https://github.com/vapor/leaf.git", from: "3.0.0-rc"),
],
targets: [
.target(name: "App", dependencies: ["FluentMySQL", "Vapor", "Leaf"]),
.target(name: "Run", dependencies: ["App"]),
.testTarget(name: "AppTests", dependencies: ["App"]),
]
)发布于 2018-07-31 20:57:09
出现这些错误的原因是因为Vapor3不包含“Droplet”、“Resource”或“ResourceRepresentable”类型。好消息是你成功地安装了vapor 3依赖项,坏消息是看起来要使用它们,你必须让你的项目vapor 3更好。好消息是,vapor 3比Vapor 2性能更好。
https://stackoverflow.com/questions/51609899
复制相似问题