{"ref":"artifact:miyasuta-cap-java-parent-pom-sample","page":"/artifacts/miyasuta-cap-java-parent-pom-sample","json":"/artifacts/miyasuta-cap-java-parent-pom-sample.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"miyasuta-cap-java-parent-pom-sample","name":"cap-java-parent-pom-sample","artifact_type":"sample","ecosystem":"cap","flavors":[{"key":"java","source":{"url":"https://github.com/miyasuta/cap-java-parent-pom-sample/blob/main/README.md","title":"central-parent（中央ビルド親pom） — cap-java-parent-pom-sample README","checked":"2026-10-08","quote":"複数の CAP Java アプリ（consumer）が `<parent>` 座標参照だけで**依存ライブラリの版を継承**するための中央親pom。"}}],"domain":"developer-experience","origin_ring":"independent","description":{"one_line":"A Maven parent pom published to GitHub Packages that pins cds-services-bom, the Spring Boot BOM and a shared CAP Java plugin, so a child application names the parent coordinate and no versions of its own.","short":"Maven parent pom pinning cds-services-bom and Spring Boot for CAP Java","what_it_solves":"`com.example.central:central-parent` holds the versions in `dependencyManagement` — cds-services-bom 4.8.0, spring-boot-dependencies 3.5.11 and emoji-plugin 1.2.0 — and the Maven plugin versions and JDK 21 in `pluginManagement`, so a child writes the parent coordinate with an empty `relativePath` and its own executions, and no version numbers. `<repositories>` is left out deliberately: a child has to know where to fetch the parent before it can read the parent, so the GitHub Packages address cannot be bootstrapped from the pom and goes into `~/.m2/settings.xml` as a wildcard. A release bumps the pinned library version and the parent's own `<version>` together, because re-publishing one version to GitHub Packages answers 409 Conflict. It is the upstream half of the promotion model [cap-java-child](artifact:miyasuta-cap-java-child) documents and tests. Written in Japanese."},"links":{"repo":"https://github.com/miyasuta/cap-java-parent-pom-sample"},"compat":{"runtimes":["java"]},"demonstrates":["capability:ci-cd"],"maintainers":["actor:mio-yasutake"],"provenance":{"discovered_via":[{"source":"source:github","channel":"miyasuta"}],"first_seen":"2026-10-08"},"use_as":"starting-point","contributors":["actor:mio-yasutake"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-06-21","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2026-06-17T20:24:25Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":4212,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2026-06-17","last_commit":"2026-06-21","commits":6,"contributors":1,"readme_path":"README.md","readme_sha":"4d24ea5a0a59bf3746aa4960d98bfb56bdaacf73","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"contributors":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}