Swift 包管理器未解析
Swift Package Manager not resolving
我目前正在尝试在 Perfect Server Side Swift 项目上使用 Swift 包管理器,但是当我 运行 Swift package update
它永远无法解决。使用详细标志,它似乎一遍又一遍地循环通过相同的依赖项。
我认为问题开始的地方是我正在尝试创建一个自定义包以导入到我的项目中。我正在尝试以一种可以将其导入其他项目的方式构建包。问题是我的包本身依赖于 Perfect Dependencies 之一。如果我从整个项目包中删除我的自定义包,则依赖项下载成功。所以我只能假设是我的包裹有问题。
我的包的依赖项如下所示
let package = Package(
name: "TestPackage",
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "TestPackage",
targets: ["TestPackage"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.Package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", majorVersion: 3),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "TestPackage",
dependencies: ["PerfectHTTP"]),
.testTarget(
name: "TestPackageTests",
dependencies: ["TestPackage"]),
]
)
然后我的 package.swift 主项目文件看起来像这样
let package = Package(
name: "json_api",
targets: [],
dependencies: [
.Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 3),
.Package(url:"/local/path/to/TestPackage", majorVersion:0, minor:1),
]
)
如您所见,它们都导入了 Perfect-HTTP 包(Perfect-HTTP-Server 通过
.package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", from: "3.0.0"),
)
当它挂起时,它会不断得到 Perfect-COpenSSL
和 Perfect-Thread
,而不是 Perfect-HTTP
我是 SPM 的新手,这是我第一次尝试创建自己的软件包。我应该如何尝试解决我只能假设是某种循环依赖问题?
所以我设法解决了这个问题,并认为它可能对其他人有用。
我在 git 中将我的版本标记设为 'v0.1',而我需要为其提供完整的语义版本控制,例如 0.1.0 作为标记并且成功运行
我目前正在尝试在 Perfect Server Side Swift 项目上使用 Swift 包管理器,但是当我 运行 Swift package update
它永远无法解决。使用详细标志,它似乎一遍又一遍地循环通过相同的依赖项。
我认为问题开始的地方是我正在尝试创建一个自定义包以导入到我的项目中。我正在尝试以一种可以将其导入其他项目的方式构建包。问题是我的包本身依赖于 Perfect Dependencies 之一。如果我从整个项目包中删除我的自定义包,则依赖项下载成功。所以我只能假设是我的包裹有问题。
我的包的依赖项如下所示
let package = Package(
name: "TestPackage",
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "TestPackage",
targets: ["TestPackage"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.Package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", majorVersion: 3),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "TestPackage",
dependencies: ["PerfectHTTP"]),
.testTarget(
name: "TestPackageTests",
dependencies: ["TestPackage"]),
]
)
然后我的 package.swift 主项目文件看起来像这样
let package = Package(
name: "json_api",
targets: [],
dependencies: [
.Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 3),
.Package(url:"/local/path/to/TestPackage", majorVersion:0, minor:1),
]
)
如您所见,它们都导入了 Perfect-HTTP 包(Perfect-HTTP-Server 通过
.package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", from: "3.0.0"),
)
当它挂起时,它会不断得到 Perfect-COpenSSL
和 Perfect-Thread
,而不是 Perfect-HTTP
我是 SPM 的新手,这是我第一次尝试创建自己的软件包。我应该如何尝试解决我只能假设是某种循环依赖问题?
所以我设法解决了这个问题,并认为它可能对其他人有用。
我在 git 中将我的版本标记设为 'v0.1',而我需要为其提供完整的语义版本控制,例如 0.1.0 作为标记并且成功运行