You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bazel natively has support for interesting JVM tooling that is first class, that I find nowhere in other JVM tooling; that now that I've become accustomed to it, making it hard to transition.
(To be fair there are often plugins that offer some mix of support but you are on your own for adopting them)
I'm keen to hear others thought on the matter.
The tools that easily come to mind are:
strict java dependency enforcement.
I think the approach in Gradle/Maven is to just abandon transitive dependencies completely. Which I guess does the same thing functionally but doesn't teach the user why. I like the approach of flagging it as it's caught and elevating the dependency when needed.
Finding unused dependencies
I believe gradle/maven have plugins that attempt to do this.
The last point is interesting to me as well. The common maven-style source roots of src/main/java in my experience has led to very large java-modules with large dependency graphs. The larger the graph, the longer the CLASSPATH and the longer the compilation time.
I do think this is an area Bazel has not yet attacked, and something I wrote about.
Really enjoyed all the meta articles on the documentation.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Bazel natively has support for interesting JVM tooling that is first class, that I find nowhere in other JVM tooling; that now that I've become accustomed to it, making it hard to transition.
(To be fair there are often plugins that offer some mix of support but you are on your own for adopting them)
I'm keen to hear others thought on the matter.
The tools that easily come to mind are:
I think the approach in Gradle/Maven is to just abandon transitive dependencies completely. Which I guess does the same thing functionally but doesn't teach the user why. I like the approach of flagging it as it's caught and elevating the dependency when needed.
I believe gradle/maven have plugins that attempt to do this.
The last point is interesting to me as well. The common maven-style source roots of
src/main/java
in my experience has led to very large java-modules with large dependency graphs. The larger the graph, the longer the CLASSPATH and the longer the compilation time.I do think this is an area Bazel has not yet attacked, and something I wrote about.
Really enjoyed all the meta articles on the documentation.
Beta Was this translation helpful? Give feedback.
All reactions