Releases: square/bazel_maven_repository
Bazel Maven Repository Rules v1.0 Release Candidate 2
Production Release (candidate 2) of a convenience mechanism to import maven artifacts into a
bazel workspace in a way that is idiomatic to Bazel, but still ends up familiar to people used to
maven repository handling.
This release includes:
- Single specification of a list of artifacts representing the "universe"
- Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
- Generates a bazel package path per maven group_id, and a target per artifact_id
- Supports .jar and .aar packaging
- Very limited support for classifiers (can use the default artifact or a classifier, but not both)
- Supports SHA256 validation of the artifact (with an insecure option for not specifying them)
- Tested with java and kotlin rules, including test rules.
- auto-building of inter-artifact dependencies (from parsed pom metadata)
- Parent metadata, dependencyManagement, and properties substitution are all supported
- per-artifact build-snippet substitution (e.g. to wire in annotation processors, or fix mis-specified deps)
- per-groupId dependency target substitution (to fix internal build cycles created by build snippet substitution)
- Tested against java, kotlin, and android projects.
Fixes from last RC:
- Documentation improvements and updates
- Added the "build_snippet" property for per-artifact configuration, to replace the map build_substitutes
that was configured separately from the artifact list in earlier versions. Backward compatibility is
preserved with a deprecation warning.
Known limitations:
- Doesn't support -SNAPSHOT dependencies (pending v1.1)
- Only supports single-version per maven_repository_spec() invocation (monorepo-style).
- Doesn't support multiple maven_repository_spec() calls
- Doesn't work on Windows by default (requires cat to be installed as a binary tool, which
could potentially be fixed if bazelbuild/bazel#7309 is accepted
Please see the README.md file for usage instructions and examples of the above features.
Bazel Maven Repository Rules v1.0 Release Candidate 1
Production Release (candidate 1) of a convenience mechanism to import maven artifacts into a
bazel workspace in a way that is idiomatic to Bazel, but still ends up familiar to people used to
maven repository handling.
This release includes:
- Single specification of a list of artifacts representing the "universe"
- Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
- Generates a bazel package path per maven group_id, and a target per artifact_id
- Supports .jar and .aar packaging
- Very limited support for classifiers (can use the default artifact or a classifier, but not both)
- Supports SHA256 validation of the artifact (with an insecure option for not specifying them)
- Tested with java and kotlin rules, including test rules.
- auto-building of inter-artifact dependencies (from parsed pom metadata)
- Parent metadata, dependencyManagement, and properties substitution are all supported
- build-snippet substitution (e.g. to wire in annotation processors, or fix mis-specified deps)
- Tested against java, kotlin, and android projects.
Known limitations:
- Doesn't support -SNAPSHOT dependencies (pending v1.1)
- Only supports single-version per maven_repository_spec() invocation (monorepo-style).
- Doesn't support multiple maven_repository_spec() calls
- Doesn't work on Windows by default (requires cat to be installed as a binary tool, which
could potentially be fixed if bazelbuild/bazel#7309 is accepted
Planned for 1.0:
- Documentation update.
Please see the README.md file for usage instructions.
Bazel Maven Repository Rules v0.4 (Beta 3)
Bazel Maven Repository Rules v0.3 (Beta 2)
A minor interim release with no functional changes, but less output noise.
Fixes:
- Removed some debug statements (b7a63ff)
Bazel Maven Repository Rules v0.2 (Beta)
Release adds:
- Inter-artifact dependency detection (only from direct poms, not parents or other inference)
- Means to override the generated target for an artifact with an alternate build snippet
- Very useful for swapping out a target for a wrapper target which hooks up an annotation processor.
- Means to override, per-package, the inferred dependencies and swap them for something else.
- This is a companion feature to the above build file snippet substitution, since in rewriting the target, it
is possible to introduce deps cycles or other deps errors, and being able to tweak the dependency
scanning from poms helps avoid having to do a lot more (and a lot more verbose) snippet replacement.
- This is a companion feature to the above build file snippet substitution, since in rewriting the target, it
Known issues:
- Dependency metadata inferred from
<dependencyManagement>
and<properties>
sections of the
pom.xml files, or inherited from a<parent>
artifact are not supported, so the tool will make some
mistakes in scoping and version. The version errors really only affect error messages, but the scoping
can result in test artifacts being brought in. Those artifacts with such inherited/implied deps properties
can be handled by simple build_substitutes. - SNAPSHOT dependencies are still not supported.
This release is also the first under the square organization, as the repo has migrated to github.com/square/bazel_maven_repository. It has been re-licensed under Square, Inc.'s copyright but is still licensed via Apache 2.0. Contributing now will require filling out square's CLA. (See the main project README for details)
Sha256 hashes:
zip: aeb31a44ee8bbd02bf88b2dd96e64f48934f8f3301032d1de2c0f5137a0c713b
.tar.gz: 34de730e8ff83252bd30e5933952ec7f0616bab6bd3b31f949f1c9465529fe55
Bazel Maven Repository Rules v0.1 (Alpha)
Initial release of a convenience mechanism to import maven artifacts into a bazel workspace in a way that
is idiomatic to Bazel, but still ends up familiar to people used to maven repository handling.
This release includes:
- Single specification of a list of artifacts representing the "universe"
- Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
- Generages a bazel package path per maven group_id, and a target per artifact_id
- Supports
jar
andaar
packaging - Very limited support for classifiers (can use the default artifact or a classifier, but not both)
- Supports SHA256 validation of the artifact
- Tested with java and kotlin rules, including test rules.
Known limitations:
- No auto-building of inter-artifact dependencies
- No auto-wiring of annotation processors