6.1.2 启用构建插件

原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/enablebuildplugin/

6.1.2 启用构建插件

用来自其他包的构建插件扩展包管理器。

概述

包插件对定义它的包可用;如果存在对应的插件产品,那么对任何直接依赖该定义包的包也可用。

添加依赖

要使用定义在另一个包中的插件,先添加对定义该插件的包的包依赖。例如,要使用 swift-openapi-generator,添加下面这个依赖:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
let package = Package(
    // 名称、平台、产品等
    dependencies: [
        // 其他依赖
        .package(url: "https://github.com/apple/swift-openapi-generator",
                 from: "1.0.0"),
    ],
    targets: [
        // 目标
    ]
)

这个插件可以根据 OpenAPI 定义文件为客户端和服务端生成模型与桩代码。

确定要启用插件的目标

把插件添加到每一个应当应用它的目标上。例如,下面的例子在可执行目标上启用了 OpenAPI 生成器插件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
let package = Package(
    name: "Example",
    dependencies: [
        .package(url: "https://github.com/apple/swift-openapi-generator",
                 from: "1.0.0"),
    ],
    targets: [
        .executableTarget(
            name: "MyExample",
            plugins: [
                .plugin(name: "OpenAPIGenerator", 
                        package: "swift-openapi-generator")
            ]
        )
    ]
)

当包管理器构建这个可执行目标时,它会调用该插件,并把应用该插件的目标的包模型简化版本传给它。插件返回的任何构建命令都会被纳入构建图,并在构建过程中的适当时机运行。