9 个版本
使用旧的 Rust 2015
0.3.2 | 2018年10月28日 |
---|---|
0.3.1 | 2018年10月13日 |
0.2.3 | 2018年10月1日 |
0.2.2 | 2018年9月27日 |
0.1.1 | 2018年9月22日 |
在 构建工具 中排名 506
在 3 crate 中使用
31KB
469 行代码(不含注释)
从 DevOps 的角度来看,了解确切部署了什么至关重要。 oysterpack_built
被用作构建时依赖项,以收集应用程序构建相关元数据。信息从 cargo build 收集。它在项目的构建脚本输出目录中生成一个名为 built.rs 的 Rust 源文件。位置可以通过以下方式获取
let built_rs = concat!(env!("OUT_DIR"), "/built.rs");
如何在您的项目中集成
-
将以下内容添加到 Cargo.toml
[package] build = "build.rs" [dependencies] oysterpack_app_metadata = "0.1" semver = "0.9" chrono = "0.4" [build-dependencies] oysterpack_built = "0.3"
oysterpack_built
被添加为构建依赖项build.rs
是要使用的 cargo 构建脚本的名称- oysterpack_app_metadata 与此 crate 一起使用,以将应用程序构建元数据加载到由 oysterpack_app_metadata 定义的领域模型中
-
在 build.rs 中包含以下内容
extern crate oysterpack_built; fn main() { oysterpack_built::run(); }
-
默认情况下,构建脚本将在 Cargo 的构建输出目录中写入一个名为 built.rs 的文件,该文件将包含以下常量
常量 | 类型 | 描述 |
---|---|---|
BUILT_TIME_UTC | &str | 构建时间,采用 RFC822 格式,UTC 时间 |
CFG_ENDIAN | &str | 端序,由 cfg!(target_endian) 给出。 |
CFG_ENV | &str | 工具链环境,由 cfg!(target_env) 给出。 |
CFG_FAMILY | &str | 操作系统家族,由 cfg!(target_family) 给出。 |
CFG_OS | &str | 操作系统,由 cfg!(target_os) 给出。 |
CFG_POINTER_WIDTH | u8 | 指针宽度,由 cfg!(target_pointer_width) 给出。 |
CFG_TARGET_ARCH | &str | 目标架构,由 cfg!(target_arch) 给出。 |
CI_PLATFORM | Option<&str> | 编译过程中检测到的持续集成平台。 |
DEBUG | bool | 编译期间使用的配置的 DEBUG 值。 |
FEATURES | [&str; N] | 编译期间启用的功能。 |
FEATURES_STR | &str | 以逗号分隔的功能字符串。 |
GIT_VERSION | Option<&str> | 如果crate是从git仓库内部编译的,GIT_VERSION将包含HEAD的标签。如果HEAD未标记,则使用简短的提交ID。 |
HOST | &str | rust编译器的宿主三元组。 |
NUM_JOBS | u32 | 在编译期间指定的并行度。 |
OPT_LEVEL | &str | 编译期间使用的配置文件OPT_LEVEL的值。 |
PKG_AUTHORS | &str | 冒号分隔的作者列表。 |
PKG_DESCRIPTION | &str | 描述。 |
PKG_HOMEPAGE | &str | 主页。 |
PKG_NAME | &str | 包名。 |
PKG_VERSION | &str | 完整版本。 |
PKG_VERSION_MAJOR | &str | 主版本。 |
PKG_VERSION_MINOR | &str | 次版本。 |
PKG_VERSION_PATCH | &str | 补丁版本。 |
PKG_VERSION_PRE | &str | 预发布版本。 |
PROFILE | &str | 对于发布构建为release,对于其他构建为debug。 |
RUSTC | &str | cargo解析为使用的编译器。 |
RUSTC_VERSION | &str | rustc -V的输出。 |
RUSTDOC | &str | cargo解析为使用的文档生成器。 |
RUSTDOC_VERSION | &str | rustdoc -V的输出。 |
DEPENDENCIES_GRAPHVIZ_DOT | &str | 有效依赖图的graphviz .dot格式。 |
可以通过oysterpack_app_metadata op_build_mod!()加载应用程序元数据。
#[macro_use]
extern crate oysterpack_app_metadata;
extern crate chrono;
extern crate semver;
// loads the application metadata into `pub mod build {...}'
op_build_mod!()
use oysterpack_app_metadata::Build;
fn main () {
let app_build = build::get();
// integrate the application build metadata ...
}
依赖项
~28–40MB
~746K SLoC