Comments (3)
Another way to phrase this would be "how to enforce a single-version policy for all Maven artifacts"
from rules_jvm_external.
Concrete example of this causing build headaches yesterday:
- A has a
java_library
target with a dep from Maven that transitively depends oncom.google.guava:guava
. Dependency resolution picked up the Android version since it wasn't explicitly specified. - B depends on that library target from A and also directly depends on
com.google.guava:guava
. It uses functions that aren't available in the Android version, so it explicitly specifies the jre version.
The only workaround I've found is to ensure that all of my projects that use rules_jvm_external use the same repo name in the Maven extension. This of course results in lots of warnings, and is also only possible if I don't end up with two module deps I don't control that use different names.
from rules_jvm_external.
The way to share artifacts is to use the same name
attribute in the tags (eg. install
and artifact
). By default, this is set to maven
, so you may not have a name
attribute on any of your tags at the moment.
When run, we aggregate all the artifacts from tags with the same name (that is, module A can contribute to dependencies that module B can use). This is needed because MODULE.bazel
files do not allow load
ing of constants, and so there's no other way to share which dependencies should be added. As you've noticed, we print a warning when we find the same name
being used in multiple repos. This is done to facilitate debugging the "where did this dep come from?" issue.
For lock files, if the root module specifies a lock file, that is the one that is used.
from rules_jvm_external.
Related Issues (20)
- [Bazel CI] Error name 'aar_import' is not defined with Bazel@HEAD HOT 1
- Maven Resolver Fails with 'The entity "oslash" was referenced, but not declared' Error HOT 3
- Maven resolver creates redundant resolver folders, consuming excessive disk space HOT 2
- Maven Resolver Ignores BOM Ordering HOT 1
- Snapshot artifacts are not resolved by the Maven resolver
- Add a bzlmod extension to override default repositories HOT 2
- Occasional NPE thrown with the Maven resolver HOT 5
- Maven resolver seems to be slower than the Coursier resolver HOT 2
- java_export generated pom.xml does not include <classifier> property
- FR: Ability to customize the location of RJE_UNSAFE_CACHE
- FR: Info about the BOM providing the version in the pinned lock file
- FR: Warnings about deviations from the BOM HOT 2
- FR: A way to exclude deps from artifacts that are determining the versions from BOMs HOT 5
- Maven resolver creates diffs in the lock files even when nothing was changed HOT 3
- Stop including extra artifacts on maven.install() HOT 2
- bzlmod doesnot support "Exporting and consuming artifacts from external repositories"
- coursier uses two different concepts of $HOME, then crashes by failing to relativize paths HOT 1
- Can not build small library after upgrade rules to 6.1 HOT 2
- In BzlMod, overrides are not repo-specific
- Exported target pom does not include artifacts
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rules_jvm_external.