| load("//private:constants.bzl", "DEFAULT_REPOSITORY_NAME") |
| load("//private:coursier_utilities.bzl", "strip_packaging_and_classifier_and_version") |
| |
| def artifact(a, repository_name = DEFAULT_REPOSITORY_NAME): |
| artifact_str = _make_artifact_str(a) if type(a) != "string" else a |
| return "@%s//:%s" % (repository_name, _escape(strip_packaging_and_classifier_and_version(artifact_str))) |
| |
| def maven_artifact(a): |
| return artifact(a, repository_name = DEFAULT_REPOSITORY_NAME) |
| |
| def java_plugin_artifact(maven_coords, plugin_class_name, repository_name = DEFAULT_REPOSITORY_NAME): |
| return "%s__java_plugin__%s" % (artifact(maven_coords, repository_name), _escape(plugin_class_name)) |
| |
| def _escape(string): |
| return string.replace(".", "_").replace("-", "_").replace(":", "_").replace("$", "_") |
| |
| # inverse of parse_maven_coordinate |
| def _make_artifact_str(artifact_obj): |
| # produce either simplified g:a or standard g:a:[p:[c:]]v Maven coordinate string |
| coord = [artifact_obj["group"], artifact_obj["artifact"]] |
| if "version" in artifact_obj: |
| if "packaging" in artifact_obj: |
| coord.extend([artifact_obj["packaging"]]) |
| if "classifier" in artifact_obj: |
| coord.extend([artifact_obj["classifier"]]) |
| coord.extend([artifact_obj["version"]]) |
| return ":".join(coord) |