Skip to content

docs: update outdated Gradle information for Vaadin 25 - #6364

Merged
peholmst merged 1 commit into
mainfrom
claude/vaadin-docs-2567-750bfe
Oct 10, 2026
Merged

peholmst merged 1 commit into
mainfrom
claude/vaadin-docs-2567-750bfe

Conversation

@peholmst

Copy link
Copy Markdown
Member

Fixes #2567.

The Getting Started Gradle page still described Vaadin 24-era requirements and Java EE setup. This rewrites it against Vaadin 25 and the current base-starter-gradle and base-starter-spring-gradle starters.

Getting Started › Starters › Gradle

  • Requirements: Java 21 and Gradle 8.14, matching GRADLE_MINIMUM_SUPPORTED_VERSION and the Java 21 target in flow-gradle-plugin, with a link to Supported Technologies.
  • Build files: replaces the plugins-only snippet with the setup the starters use. The Vaadin version goes in gradle.properties (as the upgrade guide already says), the plugin version in settings.gradle, and the BOM in build.gradle. There are tabs for Spring Boot and for a plain WAR project. Both show how vaadin-dev stays out of the production build. Versions come from the {vaadin-version} and {spring-boot-version} attributes, not a hard-coded 25.0.0.
  • Servlet API: drops javax.servlet-api:3.1.0 and the javax:javaee-api suggestion. Flow declares the Jakarta Servlet API as provided, so the page says to add jakarta.servlet-api:6.1.0 with providedCompile only when code uses it directly.
  • Gretty: Gretty 5 with jetty12 (Gretty 5 is the first release that supports Jetty 12 and Tomcat 11). The link now goes to the maintained gretty-gradle-plugin/gretty project instead of the abandoned akhikhl docs.
  • Production: adds the "Building for Production" section the meta description promises: bootJar for Spring Boot, and build -Pvaadin.productionMode=true for WAR. It links to the Flow page for details.
  • Cleanup: removes the empty --/-- block, the "gradle.build" typo, and the "much simpler. It's also more powerful" phrasing.

Flow › Configuration › Gradle

  • Same requirements fix (it said Java 17 and Gradle 8.7), and the same empty block removed.

Verification

I put the documented gradle.properties, settings.gradle, and build.gradle (with Vaadin 25.3.1, since the alpha on main isn't on the Plugin Portal) into clones of both starters and ran them:

  • ./gradlew clean build -Pvaadin.productionMode=true (plain) and ./gradlew clean bootJar (Spring Boot) both succeed. The WAR and the JAR each contain the production bundle with productionMode: true, and neither contains vaadin-dev.
  • ./gradlew appRun starts Jetty 12.0.29 through Gretty 5.0.2, and ./gradlew bootRun starts the app. Both serve the app in development mode.
  • Vale reports no errors or warnings on either page.

🤖 Generated with Claude Code

Rewrite the Getting Started Gradle page to match Vaadin 25 and the
current Gradle starters:

- Require Java 21 and Gradle 8.14, as the Vaadin Gradle plugin does,
  and link to Supported Technologies
- Show the build files the starters use: the Vaadin version in
  gradle.properties, the plugin version in settings.gradle, the Vaadin
  BOM, and vaadin-dev kept out of the production build, for both
  Spring Boot and a plain WAR project
- Replace the javax Servlet API and Java EE advice with the Jakarta
  Servlet API, use Gretty 5 with Jetty 12, and link to the maintained
  Gretty project
- Add the production build section that the meta description promises
- Drop the empty open block, the "gradle.build" typo, and the
  marketing phrasing

Also correct the same Java and Gradle requirements in the Gradle
Configuration Properties page.

Fixes #2567

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Preview Deployment

This PR has been deployed for preview.

URL: https://docs-preview-pr-6364.fly.dev

Changed pages

Added content is highlighted in green; removed content is marked in red on each page.

Built from 0314fc6

@peholmst peholmst added the target/v25.3 Automatically cherry-pick to the v25.3 branch label Oct 10, 2026
@peholmst
peholmst merged commit b8722d6 into main Oct 10, 2026
11 checks passed
@peholmst
peholmst deleted the claude/vaadin-docs-2567-750bfe branch October 10, 2026 08:42
peholmst added a commit that referenced this pull request Oct 10, 2026
Follow-up to #6364, which updated the other Gradle pages for
Vaadin 25 and left this page out on purpose. Hilla docs are being
migrated, so this PR only corrects facts and doesn't restructure the
page.

## Fixes in `articles/hilla/reference/gradle.adoc`

**Version and build file fixes**

- **Requirements:** JDK 17 changed to **JDK 21 or later**, and Gradle
now says **8.14 or later**. Verified against
`articles/compatibility.adoc` and `GRADLE_MINIMUM_SUPPORTED_VERSION =
"8.14"` in vaadin/flow `FlowPlugin.kt`, which is the same on the `25.0`,
`25.3`, and `main` branches.
- **Node.js:** "Node 18" is replaced by "Node.js (optional)", plus a
sentence saying that the Vaadin Gradle plugin installs Node.js if it's
missing or too old, with a link to Supported Technologies. The page
doesn't give a Node.js version number because the minimum changes within
Vaadin 25: `FrontendTools` on Flow `25.3` requires 24.0, and on `main`
(25.4) it requires 26.4. This follows the wording #6364 uses
on the other Gradle pages.
- **Requirements tag:** nothing includes `tag::requirements[]`. Grepping
the repo for `tag=requirements` and `tags=requirements` finds nothing,
so changing the list affects only this page.
- **Starter ZIP:** the link now points to the `v25` branch instead of
`v24`. `gh api repos/vaadin/skeleton-starter-hilla-react-gradle/branches
--paginate` lists `v2`, `v24`, `v25`, and `main`. `v25` is the default
branch and is current (Vaadin 25.3.1), while `main` is stale (Hilla
2.1). The archive URL resolves (302 to codeload).
- **Build file examples** (the main one and the pre-release one):
`org.springframework.boot` changed from `3.0.6` to
`{spring-boot-version}`, and `io.spring.dependency-management` from
`1.1.0` to `1.1.7`. The page now includes `_vaadin-version.adoc`, the
same way `articles/flow/configuration/gradle.adoc` does. The v25
starter's `build.gradle` uses Spring Boot 4.1.0 and
dependency-management 1.1.7, and 1.1.7 is the latest release in Maven
Central's metadata for the plugin.
- **`vaadin-dev` exclusion removed:** the example no longer excludes
`vaadin-dev` from `vaadin-spring-boot-starter`. That dependency isn't
transitive in Vaadin 25: the 25.3.1 POMs of `vaadin-spring-boot-starter`
and `vaadin-core-internal` don't list it. This now matches the v25
starter's `build.gradle`.
- **`gradle.properties`:** "set the Hilla version" now says "set the
Vaadin version", and the example uses `vaadinVersion={vaadin-version}`
instead of a hard-coded `25.0.0`, as in #6364.
- **Project tree:** `gradle.build` changed to `build.gradle`.

**Hilla plugin fixes** (found while comparing the page with the plugin
source)

- **`exposedPackagesToParser` removed:** the `hilla {
exposedPackagesToParser = ... }` option and its note are gone.
`EngineProjectExtension`, which defined the `hilla` extension, was
removed from vaadin/hilla in 24.7, and the option doesn't exist on any
25.x branch. A build file using it would fail. In its place, a short
paragraph says that services in dependencies and other modules need no
build configuration, and links to the Multi-Module section of the Hilla
Configuration page and to the Explicit Discovery section on this page.
That Configuration section is where the Maven docs already cover this.
- **`hillaConfigure`:** removed the claim that the task writes
`build/hilla-engine-configuration.json`. In 25.x, `EngineConfigureTask`
only calls `EngineAutoConfiguration.setDefault(...)`. For the same
reason, the `hillaGenerate` description no longer says it "reads the
configuration file".
- **Plugin name:** "Hilla Gradle plugin" now says "Vaadin Gradle
plugin", and "Hilla pre-release versions" now says "Vaadin pre-release
versions". Users apply `com.vaadin`, which vaadin/platform builds from
the Hilla plugin sources together with `flow-gradle-plugin`.
- **Link to the plugin's other tasks:** the note about
`vaadinPrepareFrontend` and `vaadinBuildFrontend` now links to Gradle
Configuration Properties. The Getting Started page it linked to doesn't
describe those tasks.

## Verification

- `vale articles/hilla/reference/gradle.adoc`: 0 errors and 0 warnings.
Before this change, there was 1 error (`Gradle Plugin` in a block title)
and 2 warnings (`AOT` undefined), and this PR fixes them.
- Rendered the page locally with Asciidoctor. `{vaadin-version}` and
`{spring-boot-version}` resolve inside the `subs="normal"` blocks, and
the new xrefs resolve to `compatibility`, `flow/configuration/gradle`,
`configuration`, and `#_endpoint_discovery`.
- `articles/hilla/lit` is untouched. No page moves, so no redirect is
needed.

## Not changed

- The project tree still shows `themes/` and
`views/helloworld/HelloWorldView.tsx`, while the v25 starter uses
`views/@index.tsx` and `views/@layout.tsx` and has no `themes/` folder.
Updating it would also mean rewriting the Hilla Lit note under it, which
goes beyond correcting facts.
- The WAR packaging example uses `providedRuntime
'org.springframework.boot:spring-boot-starter-tomcat'`, while the Spring
Boot 4.1 docs now recommend `spring-boot-starter-tomcat-runtime`.
`articles/flow/configuration/gradle.adoc` has the same line, so both
should be changed together.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
peholmst added a commit that referenced this pull request Oct 10, 2026
…25.3) (#6366)

Co-authored-by: Petter Holmström <petter@vaadin.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cherry-picked-v25.3 target/v25.3 Automatically cherry-pick to the v25.3 branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update outdated Gradle information

2 participants