From 2288f18ee6d26edf277ad09dfd836d6dccbfa725 Mon Sep 17 00:00:00 2001 From: Simon Toens Date: Thu, 30 Oct 2025 17:39:19 +0900 Subject: [PATCH] Fix error msg, move java examples to examples/java --- .../wintervegetables/BUILD | 7 ----- examples/hello-world/wintervegetables/BUILD | 6 ---- .../compile-only-dependencies/README.md | 9 +++--- .../compile-only-dependencies/coollib/BUILD | 2 +- .../coollib/MVN-INF/BUILD.pom | 0 .../coollib/MVN-INF/LIBRARY.root | 0 .../main/java/com/pomgen/example/Cool.java | 0 .../main/java/com/pomgen/example/Main.java | 0 .../compile-only-dependencies/fancy/BUILD | 0 .../com/pomgen/example/FancyCompileOnly.java | 0 .../main/java/com/pomgen/example/Main.java | 0 examples/{ => java}/dep-overrides/BUILD | 0 .../dep-overrides/MVN-INF/BUILD.pom | 0 .../dep-overrides/MVN-INF/LIBRARY.root | 0 examples/{ => java}/dep-overrides/README.md | 10 +++---- .../{ => java}/dep-overrides/overrides.bzl | 0 .../java/com/pomgen/example/DepsOverride.java | 0 .../dependency-management/README.md | 8 ++--- .../healthyfoods/MVN-INF/LIBRARY.root | 0 .../healthyfoods/vegetable-api/BUILD | 0 .../vegetable-api/MVN-INF/BUILD.pom | 0 .../java/com/pomgen/example/Vegetable.java | 0 .../dependency-management/juicer/BUILD | 2 +- .../juicer/MVN-INF/BUILD.pom | 0 .../juicer/MVN-INF/LIBRARY.root | 0 .../main/java/com/pomgen/example/Juicer.java | 0 .../main/java/com/pomgen/example/Main.java | 0 .../wintervegetables/BUILD | 7 +++++ .../wintervegetables/MVN-INF/BUILD.pom | 0 .../wintervegetables/MVN-INF/LIBRARY.root | 0 .../main/java/com/pomgen/example/Chard.java | 0 .../main/java/com/pomgen/example/Kale.java | 0 examples/{ => java}/hello-world/README.md | 28 +++++++++--------- .../healthyfoods/MVN-INF/LIBRARY.root | 0 .../hello-world/healthyfoods/fruit-api/BUILD | 0 .../healthyfoods/fruit-api/MVN-INF/BUILD.pom | 0 .../main/java/com/pomgen/example/Fruit.java | 0 .../hello-world/healthyfoods/parentpom/BUILD | 0 .../healthyfoods/parentpom/MVN-INF/BUILD.pom | 0 .../parentpom/MVN-INF/pom.template | 0 .../healthyfoods/parentpom/test.sh | 0 .../healthyfoods/vegetable-api/BUILD | 0 .../vegetable-api/MVN-INF/BUILD.pom | 0 .../java/com/pomgen/example/Vegetable.java | 0 examples/{ => java}/hello-world/juicer/BUILD | 6 ++-- .../hello-world/juicer/MVN-INF/BUILD.pom | 0 .../hello-world/juicer/MVN-INF/LIBRARY.root | 0 .../main/java/com/pomgen/example/Juicer.java | 0 .../main/java/com/pomgen/example/Main.java | 0 .../hello-world/update_release_metadata.sh | 0 .../java/hello-world/wintervegetables/BUILD | 6 ++++ .../wintervegetables/MVN-INF/BUILD.pom | 0 .../wintervegetables/MVN-INF/LIBRARY.root | 0 .../main/java/com/pomgen/example/Chard.java | 0 .../main/java/com/pomgen/example/Kale.java | 0 .../java-import/MVN-INF/LIBRARY.root | 0 examples/{ => java}/java-import/README.md | 8 ++--- .../{ => java}/java-import/oldfruit/BUILD | 2 +- .../java-import/oldfruit/MVN-INF/BUILD.pom | 2 +- .../java-import/oldfruit/oldfruit.jar | Bin .../java-import/oldfruitlover/BUILD | 2 +- .../oldfruitlover/MVN-INF/BUILD.pom | 0 .../main/java/com/pomgen/example/Main.java | 0 .../skip-artifact-generation/README.md | 4 +-- .../skip-artifact-generation/lib/BUILD | 2 +- .../lib/MVN-INF/BUILD.pom | 0 .../lib/MVN-INF/BUILD.pom.released | 4 +++ .../lib}/MVN-INF/LIBRARY.root | 0 .../lib/MVN-INF/pom.xml.released | 0 .../main/java/com/pomgen/example/Main.java | 0 .../java/com/pomgen/example/lib2/Lib2API.java | 0 .../parent}/MVN-INF/LIBRARY.root | 0 .../parent/parent1/BUILD | 2 +- .../parent/parent1/MVN-INF/BUILD.pom | 0 .../parent/parent1}/MVN-INF/LIBRARY.root | 0 .../java/com/pomgen/example/lib1/Main.java | 0 .../parent/parent2/BUILD | 2 +- .../parent/parent2/MVN-INF/BUILD.pom | 0 .../parent/parent2}/MVN-INF/LIBRARY.root | 0 .../java/com/pomgen/example/lib1/Main.java | 0 .../passthrough/BUILD | 2 +- .../passthrough/MVN-INF/BUILD.pom | 0 .../passthrough}/MVN-INF/LIBRARY.root | 0 .../lib/MVN-INF/BUILD.pom.released | 4 --- .../passthrough/MVN-INF/LIBRARY.root | 0 src/crawl/crawler.py | 2 +- .../oldfruit/pomgen_jar_location_hint | 1 - .../compile-only-dependencies/coollib/pom.xml | 0 .../examples/{ => java}/dep-overrides/pom.xml | 0 .../healthyfoods/vegetable-api/pom.xml | 0 .../dependency-management/juicer/pom.xml | 0 .../juicer/pom_companion0.xml | 0 .../wintervegetables/pom.xml | 0 .../healthyfoods/fruit-api/pom.xml | 0 .../healthyfoods/parentpom/pom.xml | 0 .../healthyfoods/vegetable-api/pom.xml | 0 .../{ => java}/hello-world/juicer/pom.xml | 0 .../hello-world/wintervegetables/pom.xml | 0 .../{ => java}/java-import/oldfruit/pom.xml | 2 +- .../oldfruit/pomgen_jar_location_hint | 1 + .../java-import/oldfruitlover/pom.xml | 2 +- .../parent/parent1/pom.xml | 0 .../parent/parent2/pom.xml | 0 103 files changed, 66 insertions(+), 67 deletions(-) delete mode 100644 examples/dependency-management/wintervegetables/BUILD delete mode 100644 examples/hello-world/wintervegetables/BUILD rename examples/{ => java}/compile-only-dependencies/README.md (61%) rename examples/{ => java}/compile-only-dependencies/coollib/BUILD (68%) rename examples/{ => java}/compile-only-dependencies/coollib/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/compile-only-dependencies/coollib/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Cool.java (100%) rename examples/{ => java}/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Main.java (100%) rename examples/{ => java}/compile-only-dependencies/fancy/BUILD (100%) rename examples/{ => java}/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/FancyCompileOnly.java (100%) rename examples/{ => java}/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/Main.java (100%) rename examples/{ => java}/dep-overrides/BUILD (100%) rename examples/{ => java}/dep-overrides/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/dep-overrides/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/dep-overrides/README.md (81%) rename examples/{ => java}/dep-overrides/overrides.bzl (100%) rename examples/{ => java}/dep-overrides/src/main/java/com/pomgen/example/DepsOverride.java (100%) rename examples/{ => java}/dependency-management/README.md (74%) rename examples/{ => java}/dependency-management/healthyfoods/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/dependency-management/healthyfoods/vegetable-api/BUILD (100%) rename examples/{ => java}/dependency-management/healthyfoods/vegetable-api/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/dependency-management/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java (100%) rename examples/{ => java}/dependency-management/juicer/BUILD (53%) rename examples/{ => java}/dependency-management/juicer/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/dependency-management/juicer/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/dependency-management/juicer/src/main/java/com/pomgen/example/Juicer.java (100%) rename examples/{ => java}/dependency-management/juicer/src/main/java/com/pomgen/example/Main.java (100%) create mode 100644 examples/java/dependency-management/wintervegetables/BUILD rename examples/{ => java}/dependency-management/wintervegetables/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/dependency-management/wintervegetables/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Chard.java (100%) rename examples/{ => java}/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Kale.java (100%) rename examples/{ => java}/hello-world/README.md (86%) rename examples/{ => java}/hello-world/healthyfoods/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/hello-world/healthyfoods/fruit-api/BUILD (100%) rename examples/{ => java}/hello-world/healthyfoods/fruit-api/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/hello-world/healthyfoods/fruit-api/src/main/java/com/pomgen/example/Fruit.java (100%) rename examples/{ => java}/hello-world/healthyfoods/parentpom/BUILD (100%) rename examples/{ => java}/hello-world/healthyfoods/parentpom/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/hello-world/healthyfoods/parentpom/MVN-INF/pom.template (100%) rename examples/{ => java}/hello-world/healthyfoods/parentpom/test.sh (100%) rename examples/{ => java}/hello-world/healthyfoods/vegetable-api/BUILD (100%) rename examples/{ => java}/hello-world/healthyfoods/vegetable-api/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/hello-world/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java (100%) rename examples/{ => java}/hello-world/juicer/BUILD (54%) rename examples/{ => java}/hello-world/juicer/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/hello-world/juicer/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/hello-world/juicer/src/main/java/com/pomgen/example/Juicer.java (100%) rename examples/{ => java}/hello-world/juicer/src/main/java/com/pomgen/example/Main.java (100%) rename examples/{ => java}/hello-world/update_release_metadata.sh (100%) create mode 100644 examples/java/hello-world/wintervegetables/BUILD rename examples/{ => java}/hello-world/wintervegetables/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/hello-world/wintervegetables/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/hello-world/wintervegetables/src/main/java/com/pomgen/example/Chard.java (100%) rename examples/{ => java}/hello-world/wintervegetables/src/main/java/com/pomgen/example/Kale.java (100%) rename examples/{ => java}/java-import/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/java-import/README.md (68%) rename examples/{ => java}/java-import/oldfruit/BUILD (53%) rename examples/{ => java}/java-import/oldfruit/MVN-INF/BUILD.pom (82%) rename examples/{ => java}/java-import/oldfruit/oldfruit.jar (100%) rename examples/{ => java}/java-import/oldfruitlover/BUILD (62%) rename examples/{ => java}/java-import/oldfruitlover/MVN-INF/BUILD.pom (100%) rename examples/{ => java}/java-import/oldfruitlover/src/main/java/com/pomgen/example/Main.java (100%) rename examples/{ => java}/skip-artifact-generation/README.md (70%) rename examples/{ => java}/skip-artifact-generation/lib/BUILD (62%) rename examples/{ => java}/skip-artifact-generation/lib/MVN-INF/BUILD.pom (100%) create mode 100644 examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released rename examples/{java-import/oldfruit => java/skip-artifact-generation/lib}/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/skip-artifact-generation/lib/MVN-INF/pom.xml.released (100%) rename examples/{ => java}/skip-artifact-generation/lib/src/main/java/com/pomgen/example/Main.java (100%) rename examples/{ => java}/skip-artifact-generation/lib/src/main/java/com/pomgen/example/lib2/Lib2API.java (100%) rename examples/{skip-artifact-generation/lib => java/skip-artifact-generation/parent}/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/skip-artifact-generation/parent/parent1/BUILD (84%) rename examples/{ => java}/skip-artifact-generation/parent/parent1/MVN-INF/BUILD.pom (100%) rename examples/{skip-artifact-generation/parent => java/skip-artifact-generation/parent/parent1}/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/skip-artifact-generation/parent/parent1/src/main/java/com/pomgen/example/lib1/Main.java (100%) rename examples/{ => java}/skip-artifact-generation/parent/parent2/BUILD (82%) rename examples/{ => java}/skip-artifact-generation/parent/parent2/MVN-INF/BUILD.pom (100%) rename examples/{skip-artifact-generation/parent/parent1 => java/skip-artifact-generation/parent/parent2}/MVN-INF/LIBRARY.root (100%) rename examples/{ => java}/skip-artifact-generation/parent/parent2/src/main/java/com/pomgen/example/lib1/Main.java (100%) rename examples/{ => java}/skip-artifact-generation/passthrough/BUILD (79%) rename examples/{ => java}/skip-artifact-generation/passthrough/MVN-INF/BUILD.pom (100%) rename examples/{skip-artifact-generation/parent/parent2 => java/skip-artifact-generation/passthrough}/MVN-INF/LIBRARY.root (100%) delete mode 100644 examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released delete mode 100644 examples/skip-artifact-generation/passthrough/MVN-INF/LIBRARY.root delete mode 100644 tests/examples_goldfiles/examples/java-import/oldfruit/pomgen_jar_location_hint rename tests/examples_goldfiles/examples/{ => java}/compile-only-dependencies/coollib/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/dep-overrides/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/dependency-management/healthyfoods/vegetable-api/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/dependency-management/juicer/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/dependency-management/juicer/pom_companion0.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/dependency-management/wintervegetables/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/hello-world/healthyfoods/fruit-api/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/hello-world/healthyfoods/parentpom/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/hello-world/healthyfoods/vegetable-api/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/hello-world/juicer/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/hello-world/wintervegetables/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/java-import/oldfruit/pom.xml (94%) create mode 100644 tests/examples_goldfiles/examples/java/java-import/oldfruit/pomgen_jar_location_hint rename tests/examples_goldfiles/examples/{ => java}/java-import/oldfruitlover/pom.xml (95%) rename tests/examples_goldfiles/examples/{ => java}/skip-artifact-generation/parent/parent1/pom.xml (100%) rename tests/examples_goldfiles/examples/{ => java}/skip-artifact-generation/parent/parent2/pom.xml (100%) diff --git a/examples/dependency-management/wintervegetables/BUILD b/examples/dependency-management/wintervegetables/BUILD deleted file mode 100644 index e86b337..0000000 --- a/examples/dependency-management/wintervegetables/BUILD +++ /dev/null @@ -1,7 +0,0 @@ -java_library( - name = "wintervegetables", - srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/dependency-management/healthyfoods/vegetable-api", - "@maven//:org_antlr_ST4"], - visibility = ["//examples/dependency-management/juicer:__subpackages__"], -) diff --git a/examples/hello-world/wintervegetables/BUILD b/examples/hello-world/wintervegetables/BUILD deleted file mode 100644 index 9338429..0000000 --- a/examples/hello-world/wintervegetables/BUILD +++ /dev/null @@ -1,6 +0,0 @@ -java_library( - name = "wintervegetables_lib2", - srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/hello-world/healthyfoods/vegetable-api"], - visibility = ["//examples/hello-world/juicer:__subpackages__"], -) diff --git a/examples/compile-only-dependencies/README.md b/examples/java/compile-only-dependencies/README.md similarity index 61% rename from examples/compile-only-dependencies/README.md rename to examples/java/compile-only-dependencies/README.md index 4c4cdf9..c219c52 100644 --- a/examples/compile-only-dependencies/README.md +++ b/examples/java/compile-only-dependencies/README.md @@ -1,7 +1,6 @@ -# Compilation time only dependencies should not be evaluated by pomgen +# Compilation time only dependencies -There are some dependencies that are needed only at compilation time, for example Lombok. To ensure compile-time only dependencies are not included at runtime, Bazel has the `neverlink` attribute, which can be added to `java_library` rules. -Typically compile-time only dependencies won't have a `BUILD.pom` file, so they have to be ignored by `pomgen`. +There are some dependencies that are needed only at compilation time, for example Lombok. To ensure compile-time only dependencies are not included at runtime, Bazel has the `neverlink` attribute, which can be added to `java_library` rules. `poppy` honors the `neverlink` attribute and will not add jars produced by neverlinked `java_library` target to generated poms. ### Try this example @@ -9,11 +8,11 @@ Typically compile-time only dependencies won't have a `BUILD.pom` file, so they From the root of the repository: ``` -bazel build examples/compile-only-dependencies/... +bazel build examples/java/compile-only-dependencies/... ``` ``` -bazel run @poppy//package/maven -- -a pomgen,install -l examples/compile-only-dependencies +bazel run @poppy//package/maven -- -a pomgen,install -l examples/java/compile-only-dependencies ``` It should pass although `examples/compile-only-dependencies/fancy` has no `BUILD.pom` file. The generated pom does not include the `neverlink` dependency. diff --git a/examples/compile-only-dependencies/coollib/BUILD b/examples/java/compile-only-dependencies/coollib/BUILD similarity index 68% rename from examples/compile-only-dependencies/coollib/BUILD rename to examples/java/compile-only-dependencies/coollib/BUILD index 09b4f98..fbcaa2d 100644 --- a/examples/compile-only-dependencies/coollib/BUILD +++ b/examples/java/compile-only-dependencies/coollib/BUILD @@ -1,7 +1,7 @@ java_library( name = "coollib", srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/compile-only-dependencies/fancy", + deps = ["//examples/java/compile-only-dependencies/fancy", "@maven//:com_google_guava_guava", ] ) diff --git a/examples/compile-only-dependencies/coollib/MVN-INF/BUILD.pom b/examples/java/compile-only-dependencies/coollib/MVN-INF/BUILD.pom similarity index 100% rename from examples/compile-only-dependencies/coollib/MVN-INF/BUILD.pom rename to examples/java/compile-only-dependencies/coollib/MVN-INF/BUILD.pom diff --git a/examples/compile-only-dependencies/coollib/MVN-INF/LIBRARY.root b/examples/java/compile-only-dependencies/coollib/MVN-INF/LIBRARY.root similarity index 100% rename from examples/compile-only-dependencies/coollib/MVN-INF/LIBRARY.root rename to examples/java/compile-only-dependencies/coollib/MVN-INF/LIBRARY.root diff --git a/examples/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Cool.java b/examples/java/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Cool.java similarity index 100% rename from examples/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Cool.java rename to examples/java/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Cool.java diff --git a/examples/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Main.java b/examples/java/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Main.java rename to examples/java/compile-only-dependencies/coollib/src/main/java/com/pomgen/example/Main.java diff --git a/examples/compile-only-dependencies/fancy/BUILD b/examples/java/compile-only-dependencies/fancy/BUILD similarity index 100% rename from examples/compile-only-dependencies/fancy/BUILD rename to examples/java/compile-only-dependencies/fancy/BUILD diff --git a/examples/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/FancyCompileOnly.java b/examples/java/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/FancyCompileOnly.java similarity index 100% rename from examples/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/FancyCompileOnly.java rename to examples/java/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/FancyCompileOnly.java diff --git a/examples/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/Main.java b/examples/java/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/Main.java rename to examples/java/compile-only-dependencies/fancy/src/main/java/com/pomgen/example/Main.java diff --git a/examples/dep-overrides/BUILD b/examples/java/dep-overrides/BUILD similarity index 100% rename from examples/dep-overrides/BUILD rename to examples/java/dep-overrides/BUILD diff --git a/examples/dep-overrides/MVN-INF/BUILD.pom b/examples/java/dep-overrides/MVN-INF/BUILD.pom similarity index 100% rename from examples/dep-overrides/MVN-INF/BUILD.pom rename to examples/java/dep-overrides/MVN-INF/BUILD.pom diff --git a/examples/dep-overrides/MVN-INF/LIBRARY.root b/examples/java/dep-overrides/MVN-INF/LIBRARY.root similarity index 100% rename from examples/dep-overrides/MVN-INF/LIBRARY.root rename to examples/java/dep-overrides/MVN-INF/LIBRARY.root diff --git a/examples/dep-overrides/README.md b/examples/java/dep-overrides/README.md similarity index 81% rename from examples/dep-overrides/README.md rename to examples/java/dep-overrides/README.md index c2f8ec4..8c160d2 100644 --- a/examples/dep-overrides/README.md +++ b/examples/java/dep-overrides/README.md @@ -1,6 +1,6 @@ # Overridding dependencies -rules-jvm-external provides an [override mechanism](https://github.com/bazelbuild/rules_jvm_external?tab=readme-ov-file#overriding-generated-targets) that allows to switch out a group and artifact id with another dependency label. This features allows overriding dependencies that are brought in transitively (ie these dependencies are dragged in through top level dependencies referenced in bazel build files). pomgen honors the same override mechanism. +rules-jvm-external provides an [override mechanism](https://github.com/bazelbuild/rules_jvm_external?tab=readme-ov-file#overriding-generated-targets) that allows to switch out a group and artifact id with another dependency label. This features allows overriding dependencies that are brought in transitively (ie these dependencies are dragged in through top level dependencies referenced in bazel build files). poppy honors the same override mechanism. ## Example @@ -16,7 +16,7 @@ The [library in this example](BUILD) depends on `org.antlr:ST4` (`@antlr//:org_a Generate a pom.xml file for this example's library: ``` -bazel run @pomgen//:pomgen -- --package examples/dep-overrides --destdir /tmp/overrides +bazel run @poppy//:pomgen -- --package examples/java/dep-overrides --destdir /tmp/overrides ``` Have a look at the generated pom.xml - note that the pom brings in the transitives listed above. @@ -24,10 +24,10 @@ Have a look at the generated pom.xml - note that the pom brings in the transitiv ## Override a transitive -On order to override dependencies brought in transitively, pomgen needs to be pointed to one or more "overrides" file(s). Add to the `[general]` section of the [root .pomgenrc](../../.pomgenrc): +On order to override dependencies brought in transitively, pomgen needs to be pointed to one or more "overrides" file(s). Add to the `[general]` section of the [root .poppyrc](../../.poppyrc): ``` -override_file_paths=examples/dep-overrides/overrides.bzl +override_file_paths=examples/java/dep-overrides/overrides.bzl ``` The content of the [overrides file](overrides.bzl) is: @@ -41,7 +41,7 @@ This means that the `stringtemplate` dependency will be overridden with `guava`. Regenerate the pom: ``` -bazel run @poppy//:gen -- --package examples/dep-overrides --destdir /tmp/overrides +bazel run @poppy//:gen -- --package examples/java/dep-overrides --destdir /tmp/overrides ``` Have a look at the generated pom.xml - since the `stringtemplate` dependency is replaced by `guava`, the `antlr` dependency, previously dragged in by `stringtemplate`, is no longer there. diff --git a/examples/dep-overrides/overrides.bzl b/examples/java/dep-overrides/overrides.bzl similarity index 100% rename from examples/dep-overrides/overrides.bzl rename to examples/java/dep-overrides/overrides.bzl diff --git a/examples/dep-overrides/src/main/java/com/pomgen/example/DepsOverride.java b/examples/java/dep-overrides/src/main/java/com/pomgen/example/DepsOverride.java similarity index 100% rename from examples/dep-overrides/src/main/java/com/pomgen/example/DepsOverride.java rename to examples/java/dep-overrides/src/main/java/com/pomgen/example/DepsOverride.java diff --git a/examples/dependency-management/README.md b/examples/java/dependency-management/README.md similarity index 74% rename from examples/dependency-management/README.md rename to examples/java/dependency-management/README.md index 6cdacfc..eaff365 100644 --- a/examples/dependency-management/README.md +++ b/examples/java/dependency-management/README.md @@ -1,6 +1,6 @@ -# Dependency Management POM Example +# Dependency Management pom Example -This examples shows how pomgen can optionally generate a dependencyManagement "companion" pom. This pom file is generated in addition to the regular pom.xml, when the attribute `generate_dependency_management_pom` is to to `True` in the [BUILD.pom file](juicer/MVN-INF/BUILD.pom). +This examples shows how poppy can optionally generate a dependencyManagement "companion" pom. This pom file is generated in addition to the regular pom.xml, when the attribute `generate_dependency_management_pom` is to to `True` in the [BUILD.pom file](juicer/MVN-INF/BUILD.pom). The dependency management pom contains a `` section with the transitive closure of all dependencies of the artifact it was generated for. It uses the `artifact_id` specified in the BUILD.pom file, suffixed with `.depmanagement`. @@ -10,11 +10,11 @@ The dependency management pom contains a `` section with t From the root of the repository: ``` -bazel build examples/dependency-management/... +bazel build examples/java/dependency-management/... ``` ``` -bazel run @poppy//package/maven -- -a pomgen,install -l examples/dependency-management +bazel run @poppy//package/maven -- -a pomgen,install -l examples/java/dependency-management ``` Now look under your `$HOME/.m2/repository`: diff --git a/examples/dependency-management/healthyfoods/MVN-INF/LIBRARY.root b/examples/java/dependency-management/healthyfoods/MVN-INF/LIBRARY.root similarity index 100% rename from examples/dependency-management/healthyfoods/MVN-INF/LIBRARY.root rename to examples/java/dependency-management/healthyfoods/MVN-INF/LIBRARY.root diff --git a/examples/dependency-management/healthyfoods/vegetable-api/BUILD b/examples/java/dependency-management/healthyfoods/vegetable-api/BUILD similarity index 100% rename from examples/dependency-management/healthyfoods/vegetable-api/BUILD rename to examples/java/dependency-management/healthyfoods/vegetable-api/BUILD diff --git a/examples/dependency-management/healthyfoods/vegetable-api/MVN-INF/BUILD.pom b/examples/java/dependency-management/healthyfoods/vegetable-api/MVN-INF/BUILD.pom similarity index 100% rename from examples/dependency-management/healthyfoods/vegetable-api/MVN-INF/BUILD.pom rename to examples/java/dependency-management/healthyfoods/vegetable-api/MVN-INF/BUILD.pom diff --git a/examples/dependency-management/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java b/examples/java/dependency-management/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java similarity index 100% rename from examples/dependency-management/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java rename to examples/java/dependency-management/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java diff --git a/examples/dependency-management/juicer/BUILD b/examples/java/dependency-management/juicer/BUILD similarity index 53% rename from examples/dependency-management/juicer/BUILD rename to examples/java/dependency-management/juicer/BUILD index e23f92c..029af0e 100644 --- a/examples/dependency-management/juicer/BUILD +++ b/examples/java/dependency-management/juicer/BUILD @@ -1,5 +1,5 @@ java_library( name = "juicer", srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/dependency-management/wintervegetables"], + deps = ["//examples/java/dependency-management/wintervegetables"], ) diff --git a/examples/dependency-management/juicer/MVN-INF/BUILD.pom b/examples/java/dependency-management/juicer/MVN-INF/BUILD.pom similarity index 100% rename from examples/dependency-management/juicer/MVN-INF/BUILD.pom rename to examples/java/dependency-management/juicer/MVN-INF/BUILD.pom diff --git a/examples/dependency-management/juicer/MVN-INF/LIBRARY.root b/examples/java/dependency-management/juicer/MVN-INF/LIBRARY.root similarity index 100% rename from examples/dependency-management/juicer/MVN-INF/LIBRARY.root rename to examples/java/dependency-management/juicer/MVN-INF/LIBRARY.root diff --git a/examples/dependency-management/juicer/src/main/java/com/pomgen/example/Juicer.java b/examples/java/dependency-management/juicer/src/main/java/com/pomgen/example/Juicer.java similarity index 100% rename from examples/dependency-management/juicer/src/main/java/com/pomgen/example/Juicer.java rename to examples/java/dependency-management/juicer/src/main/java/com/pomgen/example/Juicer.java diff --git a/examples/dependency-management/juicer/src/main/java/com/pomgen/example/Main.java b/examples/java/dependency-management/juicer/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/dependency-management/juicer/src/main/java/com/pomgen/example/Main.java rename to examples/java/dependency-management/juicer/src/main/java/com/pomgen/example/Main.java diff --git a/examples/java/dependency-management/wintervegetables/BUILD b/examples/java/dependency-management/wintervegetables/BUILD new file mode 100644 index 0000000..349748e --- /dev/null +++ b/examples/java/dependency-management/wintervegetables/BUILD @@ -0,0 +1,7 @@ +java_library( + name = "wintervegetables", + srcs = glob(["src/main/java/**/*.java"]), + deps = ["//examples/java/dependency-management/healthyfoods/vegetable-api", + "@maven//:org_antlr_ST4"], + visibility = ["//examples/java/dependency-management/juicer:__subpackages__"], +) diff --git a/examples/dependency-management/wintervegetables/MVN-INF/BUILD.pom b/examples/java/dependency-management/wintervegetables/MVN-INF/BUILD.pom similarity index 100% rename from examples/dependency-management/wintervegetables/MVN-INF/BUILD.pom rename to examples/java/dependency-management/wintervegetables/MVN-INF/BUILD.pom diff --git a/examples/dependency-management/wintervegetables/MVN-INF/LIBRARY.root b/examples/java/dependency-management/wintervegetables/MVN-INF/LIBRARY.root similarity index 100% rename from examples/dependency-management/wintervegetables/MVN-INF/LIBRARY.root rename to examples/java/dependency-management/wintervegetables/MVN-INF/LIBRARY.root diff --git a/examples/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Chard.java b/examples/java/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Chard.java similarity index 100% rename from examples/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Chard.java rename to examples/java/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Chard.java diff --git a/examples/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Kale.java b/examples/java/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Kale.java similarity index 100% rename from examples/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Kale.java rename to examples/java/dependency-management/wintervegetables/src/main/java/com/pomgen/example/Kale.java diff --git a/examples/hello-world/README.md b/examples/java/hello-world/README.md similarity index 86% rename from examples/hello-world/README.md rename to examples/java/hello-world/README.md index 54b0002..cdc7465 100644 --- a/examples/hello-world/README.md +++ b/examples/java/hello-world/README.md @@ -37,15 +37,15 @@ The [metadata query](../../query.py) script provides information about Libraries From the root of the repository: ``` -bazel run @poppy//:query -- --package examples/hello-world/juicer --library_release_plan_tree +bazel run @poppy//:query -- --package examples/java/hello-world/juicer --library_release_plan_tree ``` The output looks similar to this: ``` -examples/hello-world/juicer ++ 3.0.0-SNAPSHOT - examples/hello-world/healthyfoods ++ 1.0.0-SNAPSHOT - examples/hello-world/wintervegetables ++ 2.0.0-SNAPSHOT - examples/hello-world/healthyfoods ++ 1.0.0-SNAPSHOT +examples/java/hello-world/juicer ++ 3.0.0-SNAPSHOT + examples/java/hello-world/healthyfoods ++ 1.0.0-SNAPSHOT + examples/java/hello-world/wintervegetables ++ 2.0.0-SNAPSHOT + examples/java/hello-world/healthyfoods ++ 1.0.0-SNAPSHOT ``` The output shows: @@ -61,18 +61,18 @@ The output shows: pomgen can be run directly (`bazel run @poppy//:pomgen -- --help`), however, there's a convenient [wrapper script](../../package/maven/maven.sh) that we'll use instead: it defaults some pomgen flags. Before running, make sure you have the required [external dependencies](../../package/maven/README.md#external-dependencies). ``` -bazel run @poppy//package/maven -- -a pomgen -l examples/hello-world/juicer +bazel run @poppy//package/maven -- -a pomgen -l examples/java/hello-world/juicer ``` The command above specifies: - The **action** to run, `pomgen` in this case (to generate poms) -- The **library** to generate poms for: `examples/hello-world/juicer` +- The **library** to generate poms for: `examples/java/hello-world/juicer` pomgen follows references between libraries; since `juicer` depends on 2 other libraries `healthyfoods` and `wintervegerables`, pomgen generated pom.xml files for all 3 libraries, ie for all modules that are part of those libraries. Usually this is the right behavior, but if there a lot of upstream libraries, it may be desirable in some cases to not follow library references. This can be accomplished by setting `-i` (ignore references) flag: ``` -bazel run @poppy//package/maven -- -a pomgen -l examples/hello-world/juicer -i +bazel run @poppy//package/maven -- -a pomgen -l examples/java/hello-world/juicer -i ``` @@ -81,7 +81,7 @@ bazel run @poppy//package/maven -- -a pomgen -l examples/hello-world/juicer -i The Maven Artifacts generated by pomgen can be installed into `~/.m2/repository` so that they are consumable by a local Maven project. Use the `install` action: ``` -bazel run @poppy//package/maven -- -a install -l examples/hello-world/juicer +bazel run @poppy//package/maven -- -a install -l examples/java/hello-world/juicer ``` Note that before running `-a install`, pom.xml files must have been generated: `-a pomgen` must have run. @@ -89,23 +89,23 @@ Note that before running `-a install`, pom.xml files must have been generated: ` If you see this type of error: ``` -ERROR: did not find jar artifact at /Users/stoens/Code/pomgen/bazel-bin/examples/hello-world/juicer/juicer.jar +ERROR: did not find jar artifact at /Users/stoens/Code/pomgen/bazel-bin/examples/java/hello-world/juicer/juicer.jar ``` This error means that pomgen did not find the jar file for the juicer module - this happens when `bazel build` did not run. There are 2 solutions: -- Run `bazel build examples/hello-world/...` -- If there are many upstream libraries in a large repository, it may be helpful to ask pomgen to build all upstream libraries - use the `build` action: `bazel run @poppy//package/maven -- -a build -l examples/hello-world/juicer` +- Run `bazel build examples/java/hello-world/...` +- If there are many upstream libraries in a large repository, it may be helpful to ask pomgen to build all upstream libraries - use the `build` action: `bazel run @poppy//package/maven -- -a build -l examples/java/hello-world/juicer` Finally, note that `-a` can take multiple actions, so the above can also be run like this: ``` -bazel run @poppy//package/maven -- -a pomgen,build,install -l examples/hello-world/juicer +bazel run @poppy//package/maven -- -a pomgen,build,install -l examples/java/hello-world/juicer ``` ### Referencing Bazel-built jars in a Maven projects -Once the `install` action ran successfully for `examples/hello-world/juicer`, you can use the `juicer` artifact in a Maven project. Try this pom.xml: +Once the `install` action ran successfully for `examples/java/hello-world/juicer`, you can use the `juicer` artifact in a Maven project. Try this pom.xml: ``` diff --git a/examples/hello-world/healthyfoods/MVN-INF/LIBRARY.root b/examples/java/hello-world/healthyfoods/MVN-INF/LIBRARY.root similarity index 100% rename from examples/hello-world/healthyfoods/MVN-INF/LIBRARY.root rename to examples/java/hello-world/healthyfoods/MVN-INF/LIBRARY.root diff --git a/examples/hello-world/healthyfoods/fruit-api/BUILD b/examples/java/hello-world/healthyfoods/fruit-api/BUILD similarity index 100% rename from examples/hello-world/healthyfoods/fruit-api/BUILD rename to examples/java/hello-world/healthyfoods/fruit-api/BUILD diff --git a/examples/hello-world/healthyfoods/fruit-api/MVN-INF/BUILD.pom b/examples/java/hello-world/healthyfoods/fruit-api/MVN-INF/BUILD.pom similarity index 100% rename from examples/hello-world/healthyfoods/fruit-api/MVN-INF/BUILD.pom rename to examples/java/hello-world/healthyfoods/fruit-api/MVN-INF/BUILD.pom diff --git a/examples/hello-world/healthyfoods/fruit-api/src/main/java/com/pomgen/example/Fruit.java b/examples/java/hello-world/healthyfoods/fruit-api/src/main/java/com/pomgen/example/Fruit.java similarity index 100% rename from examples/hello-world/healthyfoods/fruit-api/src/main/java/com/pomgen/example/Fruit.java rename to examples/java/hello-world/healthyfoods/fruit-api/src/main/java/com/pomgen/example/Fruit.java diff --git a/examples/hello-world/healthyfoods/parentpom/BUILD b/examples/java/hello-world/healthyfoods/parentpom/BUILD similarity index 100% rename from examples/hello-world/healthyfoods/parentpom/BUILD rename to examples/java/hello-world/healthyfoods/parentpom/BUILD diff --git a/examples/hello-world/healthyfoods/parentpom/MVN-INF/BUILD.pom b/examples/java/hello-world/healthyfoods/parentpom/MVN-INF/BUILD.pom similarity index 100% rename from examples/hello-world/healthyfoods/parentpom/MVN-INF/BUILD.pom rename to examples/java/hello-world/healthyfoods/parentpom/MVN-INF/BUILD.pom diff --git a/examples/hello-world/healthyfoods/parentpom/MVN-INF/pom.template b/examples/java/hello-world/healthyfoods/parentpom/MVN-INF/pom.template similarity index 100% rename from examples/hello-world/healthyfoods/parentpom/MVN-INF/pom.template rename to examples/java/hello-world/healthyfoods/parentpom/MVN-INF/pom.template diff --git a/examples/hello-world/healthyfoods/parentpom/test.sh b/examples/java/hello-world/healthyfoods/parentpom/test.sh similarity index 100% rename from examples/hello-world/healthyfoods/parentpom/test.sh rename to examples/java/hello-world/healthyfoods/parentpom/test.sh diff --git a/examples/hello-world/healthyfoods/vegetable-api/BUILD b/examples/java/hello-world/healthyfoods/vegetable-api/BUILD similarity index 100% rename from examples/hello-world/healthyfoods/vegetable-api/BUILD rename to examples/java/hello-world/healthyfoods/vegetable-api/BUILD diff --git a/examples/hello-world/healthyfoods/vegetable-api/MVN-INF/BUILD.pom b/examples/java/hello-world/healthyfoods/vegetable-api/MVN-INF/BUILD.pom similarity index 100% rename from examples/hello-world/healthyfoods/vegetable-api/MVN-INF/BUILD.pom rename to examples/java/hello-world/healthyfoods/vegetable-api/MVN-INF/BUILD.pom diff --git a/examples/hello-world/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java b/examples/java/hello-world/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java similarity index 100% rename from examples/hello-world/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java rename to examples/java/hello-world/healthyfoods/vegetable-api/src/main/java/com/pomgen/example/Vegetable.java diff --git a/examples/hello-world/juicer/BUILD b/examples/java/hello-world/juicer/BUILD similarity index 54% rename from examples/hello-world/juicer/BUILD rename to examples/java/hello-world/juicer/BUILD index 09bbf84..7c583e8 100644 --- a/examples/hello-world/juicer/BUILD +++ b/examples/java/hello-world/juicer/BUILD @@ -1,9 +1,9 @@ java_library( name = "juicer_lib", srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/hello-world/healthyfoods/fruit-api", - "//examples/hello-world/healthyfoods/vegetable-api", - "//examples/hello-world/wintervegetables:wintervegetables_lib2", + deps = ["//examples/java/hello-world/healthyfoods/fruit-api", + "//examples/java/hello-world/healthyfoods/vegetable-api", + "//examples/java/hello-world/wintervegetables:wintervegetables_lib2", "@maven//:com_google_guava_guava", ] ) diff --git a/examples/hello-world/juicer/MVN-INF/BUILD.pom b/examples/java/hello-world/juicer/MVN-INF/BUILD.pom similarity index 100% rename from examples/hello-world/juicer/MVN-INF/BUILD.pom rename to examples/java/hello-world/juicer/MVN-INF/BUILD.pom diff --git a/examples/hello-world/juicer/MVN-INF/LIBRARY.root b/examples/java/hello-world/juicer/MVN-INF/LIBRARY.root similarity index 100% rename from examples/hello-world/juicer/MVN-INF/LIBRARY.root rename to examples/java/hello-world/juicer/MVN-INF/LIBRARY.root diff --git a/examples/hello-world/juicer/src/main/java/com/pomgen/example/Juicer.java b/examples/java/hello-world/juicer/src/main/java/com/pomgen/example/Juicer.java similarity index 100% rename from examples/hello-world/juicer/src/main/java/com/pomgen/example/Juicer.java rename to examples/java/hello-world/juicer/src/main/java/com/pomgen/example/Juicer.java diff --git a/examples/hello-world/juicer/src/main/java/com/pomgen/example/Main.java b/examples/java/hello-world/juicer/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/hello-world/juicer/src/main/java/com/pomgen/example/Main.java rename to examples/java/hello-world/juicer/src/main/java/com/pomgen/example/Main.java diff --git a/examples/hello-world/update_release_metadata.sh b/examples/java/hello-world/update_release_metadata.sh similarity index 100% rename from examples/hello-world/update_release_metadata.sh rename to examples/java/hello-world/update_release_metadata.sh diff --git a/examples/java/hello-world/wintervegetables/BUILD b/examples/java/hello-world/wintervegetables/BUILD new file mode 100644 index 0000000..030abc7 --- /dev/null +++ b/examples/java/hello-world/wintervegetables/BUILD @@ -0,0 +1,6 @@ +java_library( + name = "wintervegetables_lib2", + srcs = glob(["src/main/java/**/*.java"]), + deps = ["//examples/java/hello-world/healthyfoods/vegetable-api"], + visibility = ["//examples/java/hello-world/juicer:__subpackages__"], +) diff --git a/examples/hello-world/wintervegetables/MVN-INF/BUILD.pom b/examples/java/hello-world/wintervegetables/MVN-INF/BUILD.pom similarity index 100% rename from examples/hello-world/wintervegetables/MVN-INF/BUILD.pom rename to examples/java/hello-world/wintervegetables/MVN-INF/BUILD.pom diff --git a/examples/hello-world/wintervegetables/MVN-INF/LIBRARY.root b/examples/java/hello-world/wintervegetables/MVN-INF/LIBRARY.root similarity index 100% rename from examples/hello-world/wintervegetables/MVN-INF/LIBRARY.root rename to examples/java/hello-world/wintervegetables/MVN-INF/LIBRARY.root diff --git a/examples/hello-world/wintervegetables/src/main/java/com/pomgen/example/Chard.java b/examples/java/hello-world/wintervegetables/src/main/java/com/pomgen/example/Chard.java similarity index 100% rename from examples/hello-world/wintervegetables/src/main/java/com/pomgen/example/Chard.java rename to examples/java/hello-world/wintervegetables/src/main/java/com/pomgen/example/Chard.java diff --git a/examples/hello-world/wintervegetables/src/main/java/com/pomgen/example/Kale.java b/examples/java/hello-world/wintervegetables/src/main/java/com/pomgen/example/Kale.java similarity index 100% rename from examples/hello-world/wintervegetables/src/main/java/com/pomgen/example/Kale.java rename to examples/java/hello-world/wintervegetables/src/main/java/com/pomgen/example/Kale.java diff --git a/examples/java-import/MVN-INF/LIBRARY.root b/examples/java/java-import/MVN-INF/LIBRARY.root similarity index 100% rename from examples/java-import/MVN-INF/LIBRARY.root rename to examples/java/java-import/MVN-INF/LIBRARY.root diff --git a/examples/java-import/README.md b/examples/java/java-import/README.md similarity index 68% rename from examples/java-import/README.md rename to examples/java/java-import/README.md index 3c8b31e..b13fb9b 100644 --- a/examples/java-import/README.md +++ b/examples/java/java-import/README.md @@ -1,6 +1,6 @@ # java_import -Limited support for `java_import` usage exists, limited because of pomgen's assumption that there's a 1-1 mapping between Bazel Package and produced jar artifact. +Limited support for `java_import` usage exists, limited because of poppy's assumption that there's a 1-1 mapping between Bazel Package and produced jar artifact. In practice, this means that the `java_import` rule can only reference a single jar file ([example](oldfruit/BUILD)). The corresponding [BUILD.pom](oldfruit/MVN-INF/BUILD.pom) file must specify the `jar_path` attribute. @@ -10,14 +10,14 @@ In practice, this means that the `java_import` rule can only reference a single From the root of the repository: ``` -bazel build examples/java-import/... +bazel build examples/java/java-import/... ``` ``` -bazel run @poppy//package/maven -- -a pomgen,install -l examples/java-import +bazel run @poppy//package/maven -- -a pomgen,install -l examples/java/java-import ``` The cmd above installs jars and poms into `~/.m2/repository`. The `java_import` jar is at: ``` -~/.m2/repository/com/pomgen/example/oldfruit/1.0.0-SNAPSHOT/oldfruit-1.0.0-SNAPSHOT.jar +~/.m2/repository/com/pomgen/example/java/oldfruit/1.0.0-SNAPSHOT/oldfruit-1.0.0-SNAPSHOT.jar ``` diff --git a/examples/java-import/oldfruit/BUILD b/examples/java/java-import/oldfruit/BUILD similarity index 53% rename from examples/java-import/oldfruit/BUILD rename to examples/java/java-import/oldfruit/BUILD index d34bf9e..1500c49 100644 --- a/examples/java-import/oldfruit/BUILD +++ b/examples/java/java-import/oldfruit/BUILD @@ -3,6 +3,6 @@ java_import( jars = [ "oldfruit.jar", ], - visibility = ["//examples/java-import/oldfruitlover:__pkg__"], + visibility = ["//examples/java/java-import/oldfruitlover:__pkg__"], ) diff --git a/examples/java-import/oldfruit/MVN-INF/BUILD.pom b/examples/java/java-import/oldfruit/MVN-INF/BUILD.pom similarity index 82% rename from examples/java-import/oldfruit/MVN-INF/BUILD.pom rename to examples/java/java-import/oldfruit/MVN-INF/BUILD.pom index bc0275f..145bac9 100644 --- a/examples/java-import/oldfruit/MVN-INF/BUILD.pom +++ b/examples/java/java-import/oldfruit/MVN-INF/BUILD.pom @@ -1,5 +1,5 @@ artifact( - group_id = "com.pomgen.example", + group_id = "com.pomgen.example.java", artifact_id = "oldfruit", version = "1.0.0-SNAPSHOT", generation_mode = "dynamic", diff --git a/examples/java-import/oldfruit/oldfruit.jar b/examples/java/java-import/oldfruit/oldfruit.jar similarity index 100% rename from examples/java-import/oldfruit/oldfruit.jar rename to examples/java/java-import/oldfruit/oldfruit.jar diff --git a/examples/java-import/oldfruitlover/BUILD b/examples/java/java-import/oldfruitlover/BUILD similarity index 62% rename from examples/java-import/oldfruitlover/BUILD rename to examples/java/java-import/oldfruitlover/BUILD index d139e57..ddb6b68 100644 --- a/examples/java-import/oldfruitlover/BUILD +++ b/examples/java/java-import/oldfruitlover/BUILD @@ -1,5 +1,5 @@ java_library( name = "oldfruitlover", srcs = glob(["src/main/java/**/*.java"]), - deps = ["//examples/java-import/oldfruit"], + deps = ["//examples/java/java-import/oldfruit"], ) diff --git a/examples/java-import/oldfruitlover/MVN-INF/BUILD.pom b/examples/java/java-import/oldfruitlover/MVN-INF/BUILD.pom similarity index 100% rename from examples/java-import/oldfruitlover/MVN-INF/BUILD.pom rename to examples/java/java-import/oldfruitlover/MVN-INF/BUILD.pom diff --git a/examples/java-import/oldfruitlover/src/main/java/com/pomgen/example/Main.java b/examples/java/java-import/oldfruitlover/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/java-import/oldfruitlover/src/main/java/com/pomgen/example/Main.java rename to examples/java/java-import/oldfruitlover/src/main/java/com/pomgen/example/Main.java diff --git a/examples/skip-artifact-generation/README.md b/examples/java/skip-artifact-generation/README.md similarity index 70% rename from examples/skip-artifact-generation/README.md rename to examples/java/skip-artifact-generation/README.md index 007d27c..2a85de0 100644 --- a/examples/skip-artifact-generation/README.md +++ b/examples/java/skip-artifact-generation/README.md @@ -3,7 +3,7 @@ ## Looking around -The [skip pom generation mode](passthrough/MVN-INF/BUILD.pom) can be used to mark bazel targets that [provide dependencies only](passthrough/BUILD), but that do not produce any Maven artifacts. All dependencies of these types of targets will be added to pom generated for the referencing target. +The [skip pom generation mode](passthrough/MVN-INF/BUILD.pom) can be used to mark bazel targets that [provide dependencies only](passthrough/BUILD), but that do not produce any artifacts. All dependencies of these types of targets will be added to manifest generated for the referencing target. The libraries in this example reference each other the following way: @@ -17,7 +17,7 @@ parent (contains 2 artifacts: parent1 and parent2) -> passthrough -> lib From the root of the repository: ``` -bazel run @pomgen//:pomgen -- --package examples/skip-artifact-generation/parent --destdir /tmp/pomgen +bazel run @poppy//:pomgen -- --package examples/java/skip-artifact-generation/parent --destdir /tmp/pomgen ``` The command above generates 3 poms, for: diff --git a/examples/skip-artifact-generation/lib/BUILD b/examples/java/skip-artifact-generation/lib/BUILD similarity index 62% rename from examples/skip-artifact-generation/lib/BUILD rename to examples/java/skip-artifact-generation/lib/BUILD index ab911f4..1504c4a 100644 --- a/examples/skip-artifact-generation/lib/BUILD +++ b/examples/java/skip-artifact-generation/lib/BUILD @@ -2,5 +2,5 @@ java_library( name = "lib", srcs = glob(["src/main/java/**/*.java"]), runtime_deps = ["@maven//:org_apache_commons_commons_math3"], - visibility = ["//examples/skip-artifact-generation/passthrough:__subpackages__"], + visibility = ["//examples/java/skip-artifact-generation/passthrough:__subpackages__"], ) diff --git a/examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom b/examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom similarity index 100% rename from examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom rename to examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom diff --git a/examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released b/examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released new file mode 100644 index 0000000..a2b6544 --- /dev/null +++ b/examples/java/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released @@ -0,0 +1,4 @@ +released_maven_artifact( + version = "0.0.1", + artifact_hash = "ec2c3b6c895c18ee0331954c85920859de9765bd", +) \ No newline at end of file diff --git a/examples/java-import/oldfruit/MVN-INF/LIBRARY.root b/examples/java/skip-artifact-generation/lib/MVN-INF/LIBRARY.root similarity index 100% rename from examples/java-import/oldfruit/MVN-INF/LIBRARY.root rename to examples/java/skip-artifact-generation/lib/MVN-INF/LIBRARY.root diff --git a/examples/skip-artifact-generation/lib/MVN-INF/pom.xml.released b/examples/java/skip-artifact-generation/lib/MVN-INF/pom.xml.released similarity index 100% rename from examples/skip-artifact-generation/lib/MVN-INF/pom.xml.released rename to examples/java/skip-artifact-generation/lib/MVN-INF/pom.xml.released diff --git a/examples/skip-artifact-generation/lib/src/main/java/com/pomgen/example/Main.java b/examples/java/skip-artifact-generation/lib/src/main/java/com/pomgen/example/Main.java similarity index 100% rename from examples/skip-artifact-generation/lib/src/main/java/com/pomgen/example/Main.java rename to examples/java/skip-artifact-generation/lib/src/main/java/com/pomgen/example/Main.java diff --git a/examples/skip-artifact-generation/lib/src/main/java/com/pomgen/example/lib2/Lib2API.java b/examples/java/skip-artifact-generation/lib/src/main/java/com/pomgen/example/lib2/Lib2API.java similarity index 100% rename from examples/skip-artifact-generation/lib/src/main/java/com/pomgen/example/lib2/Lib2API.java rename to examples/java/skip-artifact-generation/lib/src/main/java/com/pomgen/example/lib2/Lib2API.java diff --git a/examples/skip-artifact-generation/lib/MVN-INF/LIBRARY.root b/examples/java/skip-artifact-generation/parent/MVN-INF/LIBRARY.root similarity index 100% rename from examples/skip-artifact-generation/lib/MVN-INF/LIBRARY.root rename to examples/java/skip-artifact-generation/parent/MVN-INF/LIBRARY.root diff --git a/examples/skip-artifact-generation/parent/parent1/BUILD b/examples/java/skip-artifact-generation/parent/parent1/BUILD similarity index 84% rename from examples/skip-artifact-generation/parent/parent1/BUILD rename to examples/java/skip-artifact-generation/parent/parent1/BUILD index 544de8f..52684b1 100644 --- a/examples/skip-artifact-generation/parent/parent1/BUILD +++ b/examples/java/skip-artifact-generation/parent/parent1/BUILD @@ -3,7 +3,7 @@ java_library( srcs = glob(["src/main/java/**/*.java"]), # these deps get pulled into the pom generated for *this* package # because the reference below has pomgen mode == skip - deps = ["//examples/skip-artifact-generation/passthrough:set1"], + deps = ["//examples/java/skip-artifact-generation/passthrough:set1"], runtime_deps = ["@maven//:org_antlr_stringtemplate"], ) diff --git a/examples/skip-artifact-generation/parent/parent1/MVN-INF/BUILD.pom b/examples/java/skip-artifact-generation/parent/parent1/MVN-INF/BUILD.pom similarity index 100% rename from examples/skip-artifact-generation/parent/parent1/MVN-INF/BUILD.pom rename to examples/java/skip-artifact-generation/parent/parent1/MVN-INF/BUILD.pom diff --git a/examples/skip-artifact-generation/parent/MVN-INF/LIBRARY.root b/examples/java/skip-artifact-generation/parent/parent1/MVN-INF/LIBRARY.root similarity index 100% rename from examples/skip-artifact-generation/parent/MVN-INF/LIBRARY.root rename to examples/java/skip-artifact-generation/parent/parent1/MVN-INF/LIBRARY.root diff --git a/examples/skip-artifact-generation/parent/parent1/src/main/java/com/pomgen/example/lib1/Main.java b/examples/java/skip-artifact-generation/parent/parent1/src/main/java/com/pomgen/example/lib1/Main.java similarity index 100% rename from examples/skip-artifact-generation/parent/parent1/src/main/java/com/pomgen/example/lib1/Main.java rename to examples/java/skip-artifact-generation/parent/parent1/src/main/java/com/pomgen/example/lib1/Main.java diff --git a/examples/skip-artifact-generation/parent/parent2/BUILD b/examples/java/skip-artifact-generation/parent/parent2/BUILD similarity index 82% rename from examples/skip-artifact-generation/parent/parent2/BUILD rename to examples/java/skip-artifact-generation/parent/parent2/BUILD index b820f67..8f97f33 100644 --- a/examples/skip-artifact-generation/parent/parent2/BUILD +++ b/examples/java/skip-artifact-generation/parent/parent2/BUILD @@ -3,7 +3,7 @@ java_library( srcs = glob(["src/main/java/**/*.java"]), # these deps get pulled into the pom generated for *this* package # because the reference below has pomgen mode == skip - deps = ["//examples/skip-artifact-generation/passthrough:set1"], + deps = ["//examples/java/skip-artifact-generation/passthrough:set1"], runtime_deps = ["@maven//:org_antlr_ST4"], ) diff --git a/examples/skip-artifact-generation/parent/parent2/MVN-INF/BUILD.pom b/examples/java/skip-artifact-generation/parent/parent2/MVN-INF/BUILD.pom similarity index 100% rename from examples/skip-artifact-generation/parent/parent2/MVN-INF/BUILD.pom rename to examples/java/skip-artifact-generation/parent/parent2/MVN-INF/BUILD.pom diff --git a/examples/skip-artifact-generation/parent/parent1/MVN-INF/LIBRARY.root b/examples/java/skip-artifact-generation/parent/parent2/MVN-INF/LIBRARY.root similarity index 100% rename from examples/skip-artifact-generation/parent/parent1/MVN-INF/LIBRARY.root rename to examples/java/skip-artifact-generation/parent/parent2/MVN-INF/LIBRARY.root diff --git a/examples/skip-artifact-generation/parent/parent2/src/main/java/com/pomgen/example/lib1/Main.java b/examples/java/skip-artifact-generation/parent/parent2/src/main/java/com/pomgen/example/lib1/Main.java similarity index 100% rename from examples/skip-artifact-generation/parent/parent2/src/main/java/com/pomgen/example/lib1/Main.java rename to examples/java/skip-artifact-generation/parent/parent2/src/main/java/com/pomgen/example/lib1/Main.java diff --git a/examples/skip-artifact-generation/passthrough/BUILD b/examples/java/skip-artifact-generation/passthrough/BUILD similarity index 79% rename from examples/skip-artifact-generation/passthrough/BUILD rename to examples/java/skip-artifact-generation/passthrough/BUILD index bd08410..8f88579 100644 --- a/examples/skip-artifact-generation/passthrough/BUILD +++ b/examples/java/skip-artifact-generation/passthrough/BUILD @@ -7,7 +7,7 @@ java_library( java_library( name = "set2", - runtime_deps = [":set3", "//examples/skip-artifact-generation/lib",], + runtime_deps = [":set3", "//examples/java/skip-artifact-generation/lib",], ) java_library( diff --git a/examples/skip-artifact-generation/passthrough/MVN-INF/BUILD.pom b/examples/java/skip-artifact-generation/passthrough/MVN-INF/BUILD.pom similarity index 100% rename from examples/skip-artifact-generation/passthrough/MVN-INF/BUILD.pom rename to examples/java/skip-artifact-generation/passthrough/MVN-INF/BUILD.pom diff --git a/examples/skip-artifact-generation/parent/parent2/MVN-INF/LIBRARY.root b/examples/java/skip-artifact-generation/passthrough/MVN-INF/LIBRARY.root similarity index 100% rename from examples/skip-artifact-generation/parent/parent2/MVN-INF/LIBRARY.root rename to examples/java/skip-artifact-generation/passthrough/MVN-INF/LIBRARY.root diff --git a/examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released b/examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released deleted file mode 100644 index ad92fff..0000000 --- a/examples/skip-artifact-generation/lib/MVN-INF/BUILD.pom.released +++ /dev/null @@ -1,4 +0,0 @@ -released_maven_artifact( - version = "0.0.1", - artifact_hash = "e58bd2998eb136f816a2dea5698e097192afd569", -) \ No newline at end of file diff --git a/examples/skip-artifact-generation/passthrough/MVN-INF/LIBRARY.root b/examples/skip-artifact-generation/passthrough/MVN-INF/LIBRARY.root deleted file mode 100644 index e69de29..0000000 diff --git a/src/crawl/crawler.py b/src/crawl/crawler.py index deda53f..9545a62 100644 --- a/src/crawl/crawler.py +++ b/src/crawl/crawler.py @@ -753,7 +753,7 @@ def _filter_label(self, label, downstream_artifact_def): if bazel.is_never_link_dep(self.workspace.repo_root_path, label.canonical_form): return None else: - raise Exception("cannot process this package because there is no metadata directory: [%s]" % label.package_path) + raise Exception("cannot process this package because there is no manifest metadata at: [%s]" % label.package_path) return label def _store_if_leafnode(self, node): diff --git a/tests/examples_goldfiles/examples/java-import/oldfruit/pomgen_jar_location_hint b/tests/examples_goldfiles/examples/java-import/oldfruit/pomgen_jar_location_hint deleted file mode 100644 index a820723..0000000 --- a/tests/examples_goldfiles/examples/java-import/oldfruit/pomgen_jar_location_hint +++ /dev/null @@ -1 +0,0 @@ -examples/java-import/oldfruit/oldfruit.jar \ No newline at end of file diff --git a/tests/examples_goldfiles/examples/compile-only-dependencies/coollib/pom.xml b/tests/examples_goldfiles/examples/java/compile-only-dependencies/coollib/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/compile-only-dependencies/coollib/pom.xml rename to tests/examples_goldfiles/examples/java/compile-only-dependencies/coollib/pom.xml diff --git a/tests/examples_goldfiles/examples/dep-overrides/pom.xml b/tests/examples_goldfiles/examples/java/dep-overrides/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/dep-overrides/pom.xml rename to tests/examples_goldfiles/examples/java/dep-overrides/pom.xml diff --git a/tests/examples_goldfiles/examples/dependency-management/healthyfoods/vegetable-api/pom.xml b/tests/examples_goldfiles/examples/java/dependency-management/healthyfoods/vegetable-api/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/dependency-management/healthyfoods/vegetable-api/pom.xml rename to tests/examples_goldfiles/examples/java/dependency-management/healthyfoods/vegetable-api/pom.xml diff --git a/tests/examples_goldfiles/examples/dependency-management/juicer/pom.xml b/tests/examples_goldfiles/examples/java/dependency-management/juicer/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/dependency-management/juicer/pom.xml rename to tests/examples_goldfiles/examples/java/dependency-management/juicer/pom.xml diff --git a/tests/examples_goldfiles/examples/dependency-management/juicer/pom_companion0.xml b/tests/examples_goldfiles/examples/java/dependency-management/juicer/pom_companion0.xml similarity index 100% rename from tests/examples_goldfiles/examples/dependency-management/juicer/pom_companion0.xml rename to tests/examples_goldfiles/examples/java/dependency-management/juicer/pom_companion0.xml diff --git a/tests/examples_goldfiles/examples/dependency-management/wintervegetables/pom.xml b/tests/examples_goldfiles/examples/java/dependency-management/wintervegetables/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/dependency-management/wintervegetables/pom.xml rename to tests/examples_goldfiles/examples/java/dependency-management/wintervegetables/pom.xml diff --git a/tests/examples_goldfiles/examples/hello-world/healthyfoods/fruit-api/pom.xml b/tests/examples_goldfiles/examples/java/hello-world/healthyfoods/fruit-api/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/hello-world/healthyfoods/fruit-api/pom.xml rename to tests/examples_goldfiles/examples/java/hello-world/healthyfoods/fruit-api/pom.xml diff --git a/tests/examples_goldfiles/examples/hello-world/healthyfoods/parentpom/pom.xml b/tests/examples_goldfiles/examples/java/hello-world/healthyfoods/parentpom/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/hello-world/healthyfoods/parentpom/pom.xml rename to tests/examples_goldfiles/examples/java/hello-world/healthyfoods/parentpom/pom.xml diff --git a/tests/examples_goldfiles/examples/hello-world/healthyfoods/vegetable-api/pom.xml b/tests/examples_goldfiles/examples/java/hello-world/healthyfoods/vegetable-api/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/hello-world/healthyfoods/vegetable-api/pom.xml rename to tests/examples_goldfiles/examples/java/hello-world/healthyfoods/vegetable-api/pom.xml diff --git a/tests/examples_goldfiles/examples/hello-world/juicer/pom.xml b/tests/examples_goldfiles/examples/java/hello-world/juicer/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/hello-world/juicer/pom.xml rename to tests/examples_goldfiles/examples/java/hello-world/juicer/pom.xml diff --git a/tests/examples_goldfiles/examples/hello-world/wintervegetables/pom.xml b/tests/examples_goldfiles/examples/java/hello-world/wintervegetables/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/hello-world/wintervegetables/pom.xml rename to tests/examples_goldfiles/examples/java/hello-world/wintervegetables/pom.xml diff --git a/tests/examples_goldfiles/examples/java-import/oldfruit/pom.xml b/tests/examples_goldfiles/examples/java/java-import/oldfruit/pom.xml similarity index 94% rename from tests/examples_goldfiles/examples/java-import/oldfruit/pom.xml rename to tests/examples_goldfiles/examples/java/java-import/oldfruit/pom.xml index 1a49848..e5e7288 100644 --- a/tests/examples_goldfiles/examples/java-import/oldfruit/pom.xml +++ b/tests/examples_goldfiles/examples/java/java-import/oldfruit/pom.xml @@ -6,7 +6,7 @@ 4.0.0 - com.pomgen.example + com.pomgen.example.java oldfruit 1.0.0-SNAPSHOT jar diff --git a/tests/examples_goldfiles/examples/java/java-import/oldfruit/pomgen_jar_location_hint b/tests/examples_goldfiles/examples/java/java-import/oldfruit/pomgen_jar_location_hint new file mode 100644 index 0000000..cf5ca54 --- /dev/null +++ b/tests/examples_goldfiles/examples/java/java-import/oldfruit/pomgen_jar_location_hint @@ -0,0 +1 @@ +examples/java/java-import/oldfruit/oldfruit.jar \ No newline at end of file diff --git a/tests/examples_goldfiles/examples/java-import/oldfruitlover/pom.xml b/tests/examples_goldfiles/examples/java/java-import/oldfruitlover/pom.xml similarity index 95% rename from tests/examples_goldfiles/examples/java-import/oldfruitlover/pom.xml rename to tests/examples_goldfiles/examples/java/java-import/oldfruitlover/pom.xml index afa12b6..fe96566 100644 --- a/tests/examples_goldfiles/examples/java-import/oldfruitlover/pom.xml +++ b/tests/examples_goldfiles/examples/java/java-import/oldfruitlover/pom.xml @@ -18,7 +18,7 @@ - com.pomgen.example + com.pomgen.example.java oldfruit 1.0.0-SNAPSHOT diff --git a/tests/examples_goldfiles/examples/skip-artifact-generation/parent/parent1/pom.xml b/tests/examples_goldfiles/examples/java/skip-artifact-generation/parent/parent1/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/skip-artifact-generation/parent/parent1/pom.xml rename to tests/examples_goldfiles/examples/java/skip-artifact-generation/parent/parent1/pom.xml diff --git a/tests/examples_goldfiles/examples/skip-artifact-generation/parent/parent2/pom.xml b/tests/examples_goldfiles/examples/java/skip-artifact-generation/parent/parent2/pom.xml similarity index 100% rename from tests/examples_goldfiles/examples/skip-artifact-generation/parent/parent2/pom.xml rename to tests/examples_goldfiles/examples/java/skip-artifact-generation/parent/parent2/pom.xml