[{"data":1,"prerenderedAt":163},["ShallowReactive",2],{"docs-\u002Fbuild-logic\u002Fjavadoc":3},{"id":4,"title":5,"body":6,"description":153,"extension":154,"meta":155,"navTitle":156,"navigation":157,"path":158,"rawbody":159,"seo":160,"stem":161,"__hash__":162},"docs\u002Fbuild-logic\u002Fjavadoc.md","Aggregated Javadoc",{"type":7,"value":8,"toc":146},"minimark",[9,13,27,32,35,45,60,67,71,74,103,107,110,116,119,143],[10,11,5],"h1",{"id":12},"aggregated-javadoc",[14,15,16,20,21,26],"p",{},[17,18,19],"code",{},"build-logic"," can build a single Javadoc tree covering all the common\n(platform-neutral) modules at once, themed to match the docs site. This is what\nproduces the hosted ",[22,23,25],"a",{"href":24},"\u002Fapi","API reference",".",[28,29,31],"h2",{"id":30},"generating-it","Generating It",[14,33,34],{},"One task on the root project:",[36,37,43],"pre",{"className":38,"code":40,"language":41,"meta":42},[39],"language-bash",".\u002Fgradlew aggregatedJavadoc\n# output: build\u002Fdocs\u002FaggregatedJavadoc\u002Findex.html\n","bash","",[17,44,40],{"__ignoreMap":42},[14,46,47,48,51,52,55,56,59],{},"It aggregates the ",[17,49,50],{},"commonProjects"," from ",[17,53,54],{},"magicMatrix { }"," on the resolved default\ntarget, so the whole shared API sits under one ",[17,57,58],{},"dev.ua.theroer"," package tree with\nno duplicate classes. Platform adapters are intentionally excluded (they exist\nper Minecraft version and would introduce duplicate classes across targets), as\nare the annotation processor and test-kit modules.",[14,61,62,63,66],{},"The task uses the JDK 25 toolchain and runs with doclint disabled, so a missing\n",[17,64,65],{},"@param"," never fails the build. It is reference documentation, not a lint gate.",[28,68,70],{"id":69},"theming","Theming",[14,72,73],{},"The generated pages get a brand skin plus a persistent \"back to docs\" banner:",[75,76,77,93],"ul",{},[78,79,80,83,84,88,89,92],"li",{},[17,81,82],{},"gradle\u002Fjavadoc\u002Ftheme.css"," is ",[85,86,87],"strong",{},"appended"," after Javadoc's default stylesheet\n(via ",[17,90,91],{},"--add-stylesheet","), so all the base layout is preserved and only the\nbrand colours are overridden. It mirrors the docs palette and must be kept in\nsync with it if the brand colours change.",[78,94,95,98,99,102],{},[17,96,97],{},"gradle\u002Fjavadoc\u002Ftop.html"," is injected at the top of every page (via ",[17,100,101],{},"-top",") as\na link back to the docs site.",[28,104,106],{"id":105},"packaging-hosting","Packaging & Hosting",[14,108,109],{},"A companion task zips the tree for delivery:",[36,111,114],{"className":112,"code":113,"language":41,"meta":42},[39],".\u002Fgradlew aggregatedJavadocZip\n# output: build\u002Fdocs\u002Fmagicutils-javadoc.zip\n",[17,115,113],{"__ignoreMap":42},[14,117,118],{},"The delivery pipeline keeps the docs image lightweight:",[120,121,122,125,132],"ol",{},[78,123,124],{},"CI generates the zip and uploads it to Reposilite at a stable path.",[78,126,127,128,131],{},"The docs site's Docker build downloads and unzips it into the static\n",[17,129,130],{},"public\u002Fjavadoc\u002F"," directory during the build.",[78,133,134,135,138,139,142],{},"The site serves it at ",[17,136,137],{},"\u002Fjavadoc",", and the ",[22,140,141],{"href":24},"API page"," links to it.",[14,144,145],{},"The docs image is bun-only and cannot run Javadoc itself, so shipping the\nprebuilt, themed static tree is what makes the hosted reference possible.",{"title":42,"searchDepth":147,"depth":147,"links":148},3,[149,151,152],{"id":30,"depth":150,"text":31},2,{"id":69,"depth":150,"text":70},{"id":105,"depth":150,"text":106},"Generate one themed Javadoc tree for all common MagicUtils modules with the build-logic aggregatedJavadoc task, and host it on your docs site.","md",{},null,true,"\u002Fbuild-logic\u002Fjavadoc","---\ntitle: Aggregated Javadoc\ndescription: 'Generate one themed Javadoc tree for all common MagicUtils modules with the build-logic aggregatedJavadoc task, and host it on your docs site.'\n---\n\n# Aggregated Javadoc\n\n`build-logic` can build a single Javadoc tree covering all the common\n(platform-neutral) modules at once, themed to match the docs site. This is what\nproduces the hosted [API reference](\u002Fapi).\n\n## Generating It\n\nOne task on the root project:\n\n```bash\n.\u002Fgradlew aggregatedJavadoc\n# output: build\u002Fdocs\u002FaggregatedJavadoc\u002Findex.html\n```\n\nIt aggregates the `commonProjects` from `magicMatrix { }` on the resolved default\ntarget, so the whole shared API sits under one `dev.ua.theroer` package tree with\nno duplicate classes. Platform adapters are intentionally excluded (they exist\nper Minecraft version and would introduce duplicate classes across targets), as\nare the annotation processor and test-kit modules.\n\nThe task uses the JDK 25 toolchain and runs with doclint disabled, so a missing\n`@param` never fails the build. It is reference documentation, not a lint gate.\n\n## Theming\n\nThe generated pages get a brand skin plus a persistent \"back to docs\" banner:\n\n- `gradle\u002Fjavadoc\u002Ftheme.css` is **appended** after Javadoc's default stylesheet\n  (via `--add-stylesheet`), so all the base layout is preserved and only the\n  brand colours are overridden. It mirrors the docs palette and must be kept in\n  sync with it if the brand colours change.\n- `gradle\u002Fjavadoc\u002Ftop.html` is injected at the top of every page (via `-top`) as\n  a link back to the docs site.\n\n## Packaging & Hosting\n\nA companion task zips the tree for delivery:\n\n```bash\n.\u002Fgradlew aggregatedJavadocZip\n# output: build\u002Fdocs\u002Fmagicutils-javadoc.zip\n```\n\nThe delivery pipeline keeps the docs image lightweight:\n\n1. CI generates the zip and uploads it to Reposilite at a stable path.\n2. The docs site's Docker build downloads and unzips it into the static\n   `public\u002Fjavadoc\u002F` directory during the build.\n3. The site serves it at `\u002Fjavadoc`, and the [API page](\u002Fapi) links to it.\n\nThe docs image is bun-only and cannot run Javadoc itself, so shipping the\nprebuilt, themed static tree is what makes the hosted reference possible.\n",{"title":5,"description":153},"build-logic\u002Fjavadoc","lWTi9IeSVMjIapLzmtVsnITbqVpyu_1QDX4KNoAPIqo",1783944486853]