def _parse_maven_coordinates()

in rules_jvm_export/jvm_export/support/pom_generator.py [0:0]


def _parse_maven_coordinates(coordinates_string):
    """
    Given a string containing a standard Maven coordinate (g:a:[p:[c:]]v),
    returns a Maven artifact map (see above).
    See also https://github.com/bazelbuild/rules_jvm_external/blob/4.3/specs.bzl
    """
    parts = coordinates_string.split(":")
    group_id, artifact_id = parts[0:2]
    if len(parts) == 3:
        version = parts[2]
        result = dict(group_id=group_id, artifact_id=artifact_id, version=version)
    elif len(parts) == 4:
        packaging = parts[2]
        version = parts[3]
        result = dict(group_id=group_id, artifact_id=artifact_id, packaging=packaging, version=version)
    elif len(parts) == 5:
        packaging = parts[2]
        classifier = parts[3]
        version = parts[4]
        result = dict(group_id=group_id, artifact_id=artifact_id, packaging=packaging, classifier=classifier, version=version)
    else:
        raise ValueError("failed to parse '{}'".format(coordinates_string))
    return result