Artifacts

从 Julia 1.6 开始,工件支持已从 Pkg.jl 移至 Julia 本身。在这里添加适当文档之前,您可以在 Pkg.jl 手册中了解有关工件的更多信息,网址为 https://julialang.github.io/Pkg.jl/v1/artifacts/

Julia 1.6

Julia 的 artifacts API 至少需要 Julia 1.6。在 Julia 1.3 到 1.5 版本中,您可以使用 Pkg.Artifacts

Artifacts.artifact_metaFunction
artifact_meta(name::String, artifacts_toml::String;
              platform::AbstractPlatform = HostPlatform(),
              pkg_uuid::Union{Base.UUID,Nothing}=nothing)

获取关于给定工件(通过名称识别)在给定的 (Julia)Artifacts.toml 文件中存储的元数据。如果工件是特定于平台的,请使用 platform 选择最合适的映射。如果未找到,返回 nothing

Julia 1.3

此函数至少需要 Julia 1.3。

source
Artifacts.artifact_hashFunction
artifact_hash(name::String, artifacts_toml::String;
              platform::AbstractPlatform = HostPlatform())

artifact_meta() 的薄包装,用于返回指定平台合并的工件的哈希值。如果找不到映射,则返回 nothing

Julia 1.3

此函数至少需要 Julia 1.3。

source
Artifacts.find_artifacts_tomlFunction
find_artifacts_toml(path::String)

给定一个 .jl 文件的路径(例如,在宏上下文中由 __source__.file 返回的路径),查找包含项目中的 (Julia)Artifacts.toml(如果存在),否则返回 nothing

Julia 1.3

此函数至少需要 Julia 1.3。

source
Artifacts.@artifact_strMacro
宏 artifact_str(name)

返回磁盘上工件的路径。自动通过名称在项目的 (Julia)Artifacts.toml 文件中查找工件。如果请求的工件不存在,则会抛出错误。如果在 REPL 中运行,将从当前目录开始搜索 toml 文件,更多信息请参见 find_artifacts_toml()

如果工件被标记为“懒惰”,并且包中定义了 using LazyArtifacts,则在第一次尝试计算路径时,工件将按需使用 Pkg 下载。然后,这些文件将保留在本地以供后用。

如果 name 包含正斜杠或反斜杠,则第一个斜杠之后的所有元素将被视为索引工件的路径名称,从而允许轻松的一行代码访问工件中的单个文件/目录。示例:

ffmpeg_path = @artifact"FFMPEG/bin/ffmpeg"

!!! 兼容 "Julia 1.3" 此宏至少需要 Julia 1.3。

!!! 兼容 "Julia 1.6" 斜杠索引至少需要 Julia 1.6。

source
Artifacts.artifact_existsFunction
artifact_exists(hash::SHA1; honor_overrides::Bool=true)

返回给定的工件(通过其 sha1 git 树哈希标识)是否存在于磁盘上。请注意,给定的工件可能存在于多个位置(例如,在多个仓库中)。

Julia 1.3

此函数至少需要 Julia 1.3。

source
Artifacts.artifact_pathFunction
artifact_path(hash::SHA1; honor_overrides::Bool=true)

给定一个工件(由SHA1 git树哈希标识),返回其安装路径。如果工件不存在,则返回它将被安装到的位置。

Julia 1.3

此函数至少需要Julia 1.3。

source
Artifacts.select_downloadable_artifactsFunction
select_downloadable_artifacts(artifacts_toml::String;
                              platform = HostPlatform,
                              include_lazy = false,
                              pkg_uuid = nothing)

返回一个字典,其中每个条目都是来自给定 Artifacts.toml 的应为请求的平台下载的工件。如果设置了 include_lazy,则包括延迟工件。

source