groovy_library
groovy_library
def groovy_library(
*,
name: str,
default_target_platform: None | str = None,
target_compatible_with: list[str] = [],
compatible_with: list[str] = [],
exec_compatible_with: list[str] = [],
visibility: list[str] = [],
within_view: list[str] = ["PUBLIC"],
metadata: OpaqueMetadata = {},
tests: list[str] = [],
modifiers: OpaqueMetadata = [],
_apple_platforms: dict[str, str] = {},
annotation_processor_deps: list[str] = [],
annotation_processor_params: list[str] = [],
annotation_processors: list[str] = [],
contacts: list[str] = [],
default_host_platform: None | str = None,
deps: list[str] = [],
exported_deps: list[str] = [],
exported_provided_deps: list[str] = [],
extra_arguments: list[str] = [],
extra_groovyc_arguments: list[str] = [],
java_version: None | str = None,
javac: None | str = None,
labels: list[str] = [],
licenses: list[str] = [],
manifest_file: None | str = None,
maven_coords: None | str = None,
never_mark_as_unused_dependency: None | bool = None,
non_exec_dep_plugins_deprecated: list[str | (str, list[str])] = [],
on_unused_dependencies: None | str = None,
plugins: list[str | (str, list[str])] = [],
proguard_config: None | str = None,
provided_deps: list[str] = [],
remove_classes: list[str] = [],
required_for_source_only_abi: bool = False,
resources: list[str] = [],
resources_root: None | str = None,
runtime_deps: list[str] = [],
source: None | str = None,
source_abi_verification_mode: None | str = None,
source_only_abi_deps: list[str] = [],
srcs: list[str] = [],
target: None | str = None,
) -> None
A groovy_library() rule is used to define a set of Groovy files that can be compiled together. It can also be used to cross compile a set of Groovy and Java files. The main output of a groovy_library() rule is a single JAR file containing all of the compiled class files and resources.
Parameters
-
name: name of the target -
default_target_platform: specifies the default target platform, used when no platforms are specified on the command line -
target_compatible_with: a list of constraints that are required to be satisfied for this target to be compatible with a configuration -
compatible_with: a list of constraints that are required to be satisfied for this target to be compatible with a configuration -
exec_compatible_with: a list of constraints that are required to be satisfied for this target to be compatible with an execution platform -
visibility: a list of visibility patterns restricting what targets can depend on this one -
within_view: a list of visibility patterns restricting what this target can depend on -
metadata: a key-value map of metadata associated with this target -
tests: a list of targets that provide tests for this one -
modifiers: an array of modifiers associated with this target -
deps: Rules (usually othergroovy_libraryorjava_library()rules) that are used to generate the classpath required to compile thisgroovy_library.This is the same as in
java_library(). -
exported_deps: Othergroovy_libraryandjava_library()rules that depend on this rule will also include itsexported_depsin their classpaths.This is the same as in
java_library(). -
extra_arguments: Only used during cross compilation.This is the same as in
java_library(). -
extra_groovyc_arguments: List of additional arguments to pass into the Groovy compiler. -
java_version: Only used during cross compilation.This is the same as in
java_library(). -
javac: Specifies the Java compiler program to use for this rule. The value is a source path or an execution dep (e.g., //foo/bar:bar). Overrides the value in "javac" in the "tools" section of.buckconfig. -
non_exec_dep_plugins_deprecated: Plugins that do not use the execution platform. This exists for historical reasons, and should not be used. Usepluginsinstead - plugins should be configured for the execution platform since that is where they are used. -
plugins: List of plugins that should be run during compilation of the target. A list of strings may additionally be provided in order to pass additional arguments to the plugin. -
provided_deps: This is the same as injava_library(). -
resources: This is the same as injava_library(). -
source: Only used during cross compilation.This is the same as in
java_library(). -
srcs: The set of files to compile for this rule. Usually these will all end in.groovy, but if any of the files end in.java, cross compilation using the jdk found inJAVA_HOMEwill occur. -
target: Only used during cross compilation.This is the same as in
java_library().
Details
Examples:
# A rule that compiles a single .groovy file.
groovy_library(
name = 'example',
srcs = ['MySourceFile.groovy'],
)
# A rule that compiles all of the .groovy files under the directory in
# which the rule is defined using glob()
groovy_library(
name = 'groovy-only',
srcs = glob(['**/*.groovy']),
)
# A rule that cross compiles all of the .groovy and .java files under
# the directory in which the rule is defined, failing if compiling the
# java files generates any compiler warnings
groovy_library(
name = 'cross-compilation',
srcs = glob(['**/*.groovy', '**/*.java']),
java_version = 8,
extra_arguments = [
'-Werror',
],
)