def _download_source_jar(target, ecosystem, arguments): artifact_coords = MavenCoordinates.from_str(arguments['name']) artifact_coords.packaging = 'jar' # source is always jar even for war/aar etc. sources_classifiers = ['sources', 'src'] if artifact_coords.classifier not in sources_classifiers: for sources_classifier in sources_classifiers: artifact_coords.classifier = sources_classifier try: _, source_jar_path = IndianaJones.fetch_artifact( ecosystem=ecosystem, artifact=artifact_coords.to_str(omit_version=True), version=arguments['version'], target_dir=target) except Exception: if sources_classifier == sources_classifiers[-1]: # fetching of all variants failed raise else: return source_jar_path
def _download_pom_xml(target, ecosystem, arguments): artifact_coords = MavenCoordinates.from_str(arguments['name']) artifact_coords.packaging = 'pom' artifact_coords.classifier = '' # pom.xml files have no classifiers IndianaJones.fetch_artifact( ecosystem=ecosystem, artifact=artifact_coords.to_str(omit_version=True), version=arguments['version'], target_dir=target) # pom has to be named precisely pom.xml, otherwise mercator's Java handler # which uses maven as subprocess won't see it pom_xml_path = os.path.join(target, 'pom.xml') os.rename( os.path.join( target, '{}-{}.pom'.format(artifact_coords.artifactId, arguments['version'])), pom_xml_path) return pom_xml_path