Rules
javadoc
Generate a javadoc from all the deps
Example usage (generated)
load("@rules_jvm_external//:defs.bzl", "javadoc")
javadoc(
# A unique name for this target.
name = "",
# The java libraries to generate javadocs for
deps = [],
)
name
A unique name for this target.
deps
The java libraries to generate javadocs for.
The source jars of each dep will be used to generate the javadocs. Currently docs for transitive dependencies are not generated.
javadocopts
javadoc options. Note sources and classpath are derived from the deps. Any additional options can be passed here.
Macros and Functions
java_export
Extends java_library
to allow maven artifacts to be uploaded.
This macro can be used as a drop-in replacement for java_library
, but
also generates an implicit name.publish
target that can be run to publish
maven artifacts derived from this macro to a maven repository. The publish
rule understands the following variables (declared using --define
when
using bazel run
):
maven_repo
: A URL for the repo to use. May be "https" or "file".maven_user
: The user name to use when uploading to the maven repository.maven_password
: The password to use when uploading to the maven repository.
This macro also generates a name-pom
target that creates the pom.xml
file
associated with the artifacts. The template used is derived from the (optional)
pom_template
argument, and the following substitutions are performed on
the template file:
{groupId}
: Replaced with the maven coordinates group ID.{artifactId}
: Replaced with the maven coordinates artifact ID.{version}
: Replaced by the maven coordinates version.{type}
: Replaced by the maven coordintes type, if present (defaults to "jar"){dependencies}
: Replaced by a list of maven dependencies directly relied upon by java_library targets within the artifact.
The "edges" of the artifact are found by scanning targets that contribute to runtime dependencies for the following tags:
maven_coordinates=group:artifact:type:version
: Specifies a dependency of this artifact.maven:compile_only
: Specifies that this dependency should not be listed as a dependency of the artifact being generated.
To skip generation of the javadoc jar, add the no-javadocs
tag to the target.
Generated rules:
name
: Ajava_library
that other rules can depend upon.name-docs
: A javadoc jar file.name-pom
: The pom.xml file.name.publish
: To be executed bybazel run
to publish to a maven repo.
Example usage (generated)
load("@rules_jvm_external//:defs.bzl", "java_export")
java_export(
# A unique name for this target
name = "",
# The maven coordinates for this target.
maven_coordinates = None,
)
name
A unique name for this target
maven_coordinates
The maven coordinates for this target.
deploy_env
A list of labels of java targets to exclude from the generated jar
pom_template
The template to be used for the pom.xml file.
visibility
The visibility of the target
tags
kwargs
maven_install
Resolves and fetches artifacts transitively from Maven repositories.
This macro runs a repository rule that invokes the Coursier CLI to resolve and fetch Maven artifacts transitively.
Example usage (generated)
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
)
name
A unique name for this Bazel external repository.
repositories
A list of Maven repository URLs, specified in lookup order.
Supports URLs with HTTP Basic Authentication, e.g. "https://username:password@example.com".
artifacts
A list of Maven artifact coordinates in the form of group:artifact:version
.
fail_on_missing_checksum
fetch_sources
Additionally fetch source JARs.
fetch_javadoc
Additionally fetch javadoc JARs.
use_unsafe_shared_cache
Download artifacts into a persistent shared cache on disk. Unsafe as Bazel is currently unable to detect modifications to the cache.
excluded_artifacts
A list of Maven artifact coordinates in the form of group:artifact
to be
excluded from the transitive dependencies.
generate_compat_repositories
Additionally generate repository aliases in a .bzl file for all JAR
artifacts. For example, @maven//:com_google_guava_guava
can also be referenced as
@com_google_guava_guava//jar
.
version_conflict_policy
Policy for user-defined vs. transitive dependency version conflicts. If "pinned", choose the user's version unconditionally. If "default", follow Coursier's default policy.
maven_install_json
A label to a maven_install.json
file to use pinned artifacts for generating
build targets. e.g //:maven_install.json
.
override_targets
A mapping of group:artifact
to Bazel target labels. All occurrences of the
target label for group:artifact
will be an alias to the specified label, therefore overriding
the original generated jvm_import
or aar_import
target.
strict_visibility
Controls visibility of transitive dependencies. If True
, transitive dependencies
are private and invisible to user's rules. If False
, transitive dependencies are public and
visible to user's rules.
resolve_timeout
The execution timeout of resolving and fetching artifacts.
jetify
Runs the AndroidX Jetifier tool on artifacts specified in jetify_include_list. If jetify_include_list is not specified, run Jetifier on all artifacts.
jetify_include_list
List of artifacts that need to be jetified in groupId:artifactId
format. By default all artifacts are jetified if jetify
is set to True.
additional_netrc_lines
Additional lines prepended to the netrc file used by http_file
(with maven_install_json
only).
fail_if_repin_required
Whether to fail the build if the required maven artifacts have been changed but not repinned. Requires the maven_install_json
to have been set.
use_starlark_android_rules
Whether to use the native or Starlark version of the Android rules. Default is False.
aar_import_bzl_label
The label (as a string) to use to import aar_import from. This is usually needed only if the top-level workspace file does not use the typical default repository name to import the Android Starlark rules. Default is "@build_bazel_rules_android//rules:rules.bzl".
duplicate_version_warning
What to do if an artifact is specified multiple times. If "error" then fail the build, if "warn" then print a message and continue, if "none" then do nothing. The default is "warn".