Skip to main content
Bazel
About Bazel Getting started User guide Reference Extending Community Versioned docs
  • 8.2
  • 8.1
  • 8.0
  • 7.6
  • 7.5
  • 6.5
  • 5.4.1
  • Nightly
  • More…
/
  • English
  • Deutsch
  • Español
  • Español – América Latina
  • Français
  • Indonesia
  • Italiano
  • Polski
  • Português
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • עברית
  • العربيّة
  • فارسی
  • हिंदी
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어
GitHub
  • Guides to maximize Bazel's power through advanced concepts and extensions
Concepts Writing rules Distributing rules APIs
Bazel
  • About Bazel
  • Getting started
  • User guide
  • Reference
  • Extending
    • Concepts
    • Writing rules
    • Distributing rules
    • APIs
  • Community
  • Versioned docs
    • More
  • GitHub
  • Build API
    • Overview
    • Global functions
      • Overview
      • .bzl files
      • All Bazel files
      • BUILD files
      • MODULE.bazel files
      • REPO.bazel files
      • VENDOR.bazel files
      • WORKSPACE files
    • Configuration Fragments
      • Overview
      • apple
      • bazel_android
      • bazel_py
      • coverage
      • cpp
      • j2objc
      • java
      • objc
      • platform
      • proto
      • py
    • Providers
      • Overview
      • AnalysisTestResultInfo
      • CcInfo
      • CcToolchainConfigInfo
      • CcToolchainInfo
      • ConstraintCollection
      • ConstraintSettingInfo
      • ConstraintValueInfo
      • DebugPackageInfo
      • DefaultInfo
      • ExecutionInfo
      • FeatureFlagInfo
      • file_provider
      • FilesToRunProvider
      • IncompatiblePlatformProvider
      • InstrumentedFilesInfo
      • java_compilation_info
      • java_output_jars
      • JavaRuntimeInfo
      • JavaToolchainInfo
      • ObjcProvider
      • OutputGroupInfo
      • PackageSpecificationInfo
      • PlatformInfo
      • ProguardSpecProvider
      • ProtoRegistryProvider
      • RunEnvironmentInfo
      • TemplateVariableInfo
      • ToolchainInfo
      • ToolchainTypeInfo
    • Built-in Types
      • Overview
      • Action
      • actions
      • apple_platform
      • Args
      • Aspect
      • Attribute
      • bazel_module
      • bazel_module_tags
      • BuildSetting
      • CcCompilationOutputs
      • CcLinkingOutputs
      • CompilationContext
      • configuration
      • ctx
      • depset
      • DirectoryExpander
      • DottedVersion
      • exec_result
      • ExecGroupCollection
      • ExecGroupContext
      • ExecTransitionFactory
      • extension_metadata
      • FeatureConfiguration
      • File
      • fragments
      • java_annotation_processing
      • Label
      • LateBoundDefault
      • LibraryToLink
      • License
      • LinkerInput
      • LinkingContext
      • macro
      • mapped_root
      • module_ctx
      • path
      • propagation_ctx
      • Provider
      • repository_ctx
      • repository_os
      • repository_rule
      • root
      • rule
      • rule_attributes
      • runfiles
      • struct
      • Subrule
      • subrule_ctx
      • SymlinkEntry
      • tag_class
      • Target
      • TemplateDict
      • toolchain_type
      • ToolchainContext
      • transition
    • Top-level Modules
      • Overview
      • apple_common
      • attr
      • cc_common
      • config
      • config_common
      • coverage_common
      • java_common
      • native
      • platform_common
      • proto
      • proto_common
      • testing
    • Core Starlark data types
      • Overview
      • bool
      • builtin_function_or_method
      • dict
      • float
      • function
      • int
      • json
      • list
      • range
      • set
      • string
      • tuple
    • Repository rules
      • Overview
      • git
      • http
      • local
      • utils
  • 8.2
  • 8.1
  • 8.0
  • 7.6
  • 7.5
  • 6.5
  • 5.4.1
  • Nightly
  • More…
  • Bazel
  • Extending
  • APIs

rule

Report an issueopen_in_new View sourceopen_in_new Nightly · 8.2 · 8.1 · 8.0 · 7.6 · 7.5

A callable value representing the type of a native or Starlark rule (created by rule()). Calling the value during evaluation of a package's BUILD file creates an instance of the rule and adds it to the package's target set. For more information, visit this page about Rules.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-04-14 UTC.

  • Stay connected

    • Blog
    • GitHub
  • Support

    • Support
    • Issue tracker
    • Slack
    • Stack Overflow
  • Terms
  • Privacy
  • Manage cookies
  • English
  • Deutsch
  • Español
  • Español – América Latina
  • Français
  • Indonesia
  • Italiano
  • Polski
  • Português
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • עברית
  • العربيّة
  • فارسی
  • हिंदी
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어