Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open source Bazel Maven Config Generator website #3946

Closed
wants to merge 1 commit into from

Conversation

jart
Copy link
Contributor

@jart jart commented Oct 23, 2017

This directory contains the source code to a website that runs on Google Apps Script. It crawls Maven POM metadata to generate WORKSPACE configs using java_import_external.

Please watch the demo video on YouTube.

Features

  • Defines all transitive relationships
  • Resolves diamond conflicts by bumping versions
  • Calculates SHA256 (slow due to Apps Script API issue)
  • Documents licenses and heuristically categorizes them
  • Heuristics for neverlink (provided) jars
  • Source jars and optional dependencies
  • Mirrors jars to Google Drive
  • Adds iBiblio URLs if 200 OK

Verbosity

The huge config is good because it makes builds deterministic, highly available, and fast because Bazel won't need to BFS HTTP POMs each build. Even Java projects with hundreds of transitive dependencies can expect bazel fetch //.... to take seconds.

You'll also see all the mysterious code from the Internet that you're running on your machine. For example, you might discover Apache Commons Collections 3.2.1 on the classpath, in which case it's game over if anything in the JVM is deserializing. So the verbosity might actually save you from ending up in the same boat as Equifax. See Operation Rosehub to learn more.

Imperfection

Another reason why the generated config is huge is because it only gets you 90% there. You will need to make subtle adjustments after using the tool. See the README in the PR to learn more.

@jart jart force-pushed the bazel-maven-config-generator branch 15 times, most recently from ddfbd7c to 1c1fc38 Compare October 23, 2017 05:01
@jart jart force-pushed the bazel-maven-config-generator branch from 1c1fc38 to ef03289 Compare October 23, 2017 05:04
@katre katre requested a review from damienmg October 31, 2017 19:43
@katre katre added P2 We'll consider working on this in future. (Assignee optional) type: feature request category: misc > misc labels Oct 31, 2017
@damienmg damienmg requested review from davidstanke and removed request for damienmg November 1, 2017 07:28
@laszlocsomor
Copy link
Contributor

ping -- are there any updates?

@lfpino
Copy link
Contributor

lfpino commented Mar 27, 2018

Hi @davidstanke, Bazel sheriff here, what's the status of this pull request? It hasn't been updated for more than a week so it'd be good to understand if it's still ongoing or safe to close. Thanks.

@ittaiz ittaiz mentioned this pull request Apr 26, 2018
@aiuto aiuto added the team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. label Dec 7, 2018
@aiuto aiuto removed the request for review from davidstanke December 7, 2018 04:54
@jin
Copy link
Member

jin commented Apr 30, 2019

We're moving towards https://github.com/bazelbuild/rules_jvm_external/ for transitive Maven dependency resolution.

@jin jin closed this Apr 30, 2019
@philwo philwo added the team-OSS Issues for the Bazel OSS team: installation, release processBazel packaging, website label Jun 15, 2020
@philwo philwo removed the team-OSS Issues for the Bazel OSS team: installation, release processBazel packaging, website label Nov 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes P2 We'll consider working on this in future. (Assignee optional) team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. type: feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants