"Fossies" - the Fresh Open Source Software Archive

Member "selenium-selenium-4.8.1/java/private/export.bzl" (17 Feb 2023, 3203 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "export.bzl": 4.8.0_vs_4.8.1.

    1 load(
    2     "@rules_jvm_external//:defs.bzl",
    3     "javadoc",
    4     "pom_file",
    5 )
    6 load("@rules_jvm_external//private/rules:maven_bom_fragment.bzl", "maven_bom_fragment")
    7 load("@rules_jvm_external//private/rules:maven_project_jar.bzl", "maven_project_jar")
    8 load("@rules_jvm_external//private/rules:maven_publish.bzl", "maven_publish")
    9 load("//java/private:module.bzl", "java_module")
   10 
   11 def java_export(
   12         name,
   13         maven_coordinates,
   14         pom_template = None,
   15         hides = [],
   16         uses = [],
   17         opens_to = [],
   18         exports = [],
   19         tags = [],
   20         testonly = None,
   21         visibility = None,
   22         **kwargs):
   23     tags = tags + ["maven_coordinates=%s" % maven_coordinates]
   24     lib_name = "%s-lib" % name
   25 
   26     # Construct the java_library we'll export from here.
   27     native.java_library(
   28         name = lib_name,
   29         tags = tags,
   30         exports = exports,
   31         **kwargs
   32     )
   33 
   34     # Merge the jars to create the maven project jar
   35     maven_project_jar(
   36         name = "%s-project" % name,
   37         target = ":%s" % lib_name,
   38         tags = tags,
   39     )
   40 
   41     native.filegroup(
   42         name = "%s-maven-artifact" % name,
   43         srcs = [
   44             ":%s-project" % name,
   45         ],
   46         output_group = "maven_artifact",
   47     )
   48 
   49     native.filegroup(
   50         name = "%s-maven-source" % name,
   51         srcs = [
   52             ":%s-project" % name,
   53         ],
   54         output_group = "maven_source",
   55     )
   56 
   57     java_module(
   58         name = "%s-module" % name,
   59         target = ":%s-project" % name,
   60         deps = kwargs.get("deps", []) + kwargs.get("runtime_deps", []),
   61         exports = exports,
   62         hides = hides,
   63         opens_to = opens_to,
   64         tags = tags,
   65         uses = uses,
   66     )
   67 
   68     native.filegroup(
   69         name = "%s-maven-module" % name,
   70         srcs = [
   71             ":%s-module" % name,
   72         ],
   73         output_group = "module_jar",
   74     )
   75 
   76     javadoc(
   77         name = "%s-docs" % name,
   78         deps = [
   79             ":%s-project" % name,
   80         ],
   81     )
   82 
   83     pom_file(
   84         name = "%s-pom" % name,
   85         target = ":%s" % lib_name,
   86         pom_template = pom_template,
   87     )
   88 
   89     maven_publish(
   90         name = "%s.publish" % name,
   91         coordinates = maven_coordinates,
   92         pom = "%s-pom" % name,
   93         javadocs = "%s-docs" % name,
   94         artifact_jar = ":%s-maven-module" % name,
   95         source_jar = ":%s-maven-source" % name,
   96         visibility = visibility,
   97     )
   98 
   99     # We may want to aggregate several `java_export` targets into a single Maven BOM POM
  100     # https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms
  101     maven_bom_fragment(
  102         name = "%s.bom-fragment" % name,
  103         maven_coordinates = maven_coordinates,
  104         artifact = ":%s" % lib_name,
  105         src_artifact = ":%s-maven-source" % name,
  106         javadoc_artifact = None if "no-javadocs" in tags else ":%s-docs" % name,
  107         pom = ":%s-pom" % name,
  108         testonly = testonly,
  109         tags = tags,
  110         visibility = visibility,
  111     )
  112 
  113     # Finally, alias the primary output
  114     native.alias(
  115         name = name,
  116         actual = ":%s-module" % name,
  117         visibility = visibility,
  118     )