Artifacts
从 Julia 1.6 开始,工件支持已从 Pkg.jl
移至 Julia 本身。在这里添加适当文档之前,您可以在 Pkg.jl
手册中了解有关工件的更多信息,网址为 https://julialang.github.io/Pkg.jl/v1/artifacts/。
Julia 的 artifacts API 至少需要 Julia 1.6。在 Julia 1.3 到 1.5 版本中,您可以使用 Pkg.Artifacts
。
Artifacts.artifact_meta
— Functionartifact_meta(name::String, artifacts_toml::String;
platform::AbstractPlatform = HostPlatform(),
pkg_uuid::Union{Base.UUID,Nothing}=nothing)
获取关于给定工件(通过名称识别)在给定的 (Julia)Artifacts.toml
文件中存储的元数据。如果工件是特定于平台的,请使用 platform
选择最合适的映射。如果未找到,返回 nothing
。
此函数至少需要 Julia 1.3。
Artifacts.artifact_hash
— Functionartifact_hash(name::String, artifacts_toml::String;
platform::AbstractPlatform = HostPlatform())
artifact_meta()
的薄包装,用于返回指定平台合并的工件的哈希值。如果找不到映射,则返回 nothing
。
此函数至少需要 Julia 1.3。
Artifacts.find_artifacts_toml
— Functionfind_artifacts_toml(path::String)
给定一个 .jl
文件的路径(例如,在宏上下文中由 __source__.file
返回的路径),查找包含项目中的 (Julia)Artifacts.toml
(如果存在),否则返回 nothing
。
此函数至少需要 Julia 1.3。
Artifacts.@artifact_str
— Macro宏 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。
Artifacts.artifact_exists
— Functionartifact_exists(hash::SHA1; honor_overrides::Bool=true)
返回给定的工件(通过其 sha1 git 树哈希标识)是否存在于磁盘上。请注意,给定的工件可能存在于多个位置(例如,在多个仓库中)。
此函数至少需要 Julia 1.3。
Artifacts.artifact_path
— Functionartifact_path(hash::SHA1; honor_overrides::Bool=true)
给定一个工件(由SHA1 git树哈希标识),返回其安装路径。如果工件不存在,则返回它将被安装到的位置。
此函数至少需要Julia 1.3。
Artifacts.select_downloadable_artifacts
— Functionselect_downloadable_artifacts(artifacts_toml::String;
platform = HostPlatform,
include_lazy = false,
pkg_uuid = nothing)
返回一个字典,其中每个条目都是来自给定 Artifacts.toml
的应为请求的平台下载的工件。如果设置了 include_lazy
,则包括延迟工件。