Repository navigation
docs: update outdated Gradle information for Vaadin 25 - #6364
Merged
Merged
Conversation
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>
Contributor
Preview DeploymentThis PR has been deployed for preview. URL: https://docs-preview-pr-6364.fly.dev Changed pagesAdded content is highlighted in green; removed content is marked in red on each page.
Built from 0314fc6 |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-gradleandbase-starter-spring-gradlestarters.Getting Started › Starters › Gradle
GRADLE_MINIMUM_SUPPORTED_VERSIONand the Java 21 target inflow-gradle-plugin, with a link to Supported Technologies.gradle.properties(as the upgrade guide already says), the plugin version insettings.gradle, and the BOM inbuild.gradle. There are tabs for Spring Boot and for a plain WAR project. Both show howvaadin-devstays out of the production build. Versions come from the{vaadin-version}and{spring-boot-version}attributes, not a hard-coded25.0.0.javax.servlet-api:3.1.0and thejavax:javaee-apisuggestion. Flow declares the Jakarta Servlet API asprovided, so the page says to addjakarta.servlet-api:6.1.0withprovidedCompileonly when code uses it directly.jetty12(Gretty 5 is the first release that supports Jetty 12 and Tomcat 11). The link now goes to the maintainedgretty-gradle-plugin/grettyproject instead of the abandoned akhikhl docs.bootJarfor Spring Boot, andbuild -Pvaadin.productionMode=truefor WAR. It links to the Flow page for details.--/--block, the "gradle.build" typo, and the "much simpler. It's also more powerful" phrasing.Flow › Configuration › Gradle
Verification
I put the documented
gradle.properties,settings.gradle, andbuild.gradle(with Vaadin 25.3.1, since the alpha onmainisn'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 withproductionMode: true, and neither containsvaadin-dev../gradlew appRunstarts Jetty 12.0.29 through Gretty 5.0.2, and./gradlew bootRunstarts the app. Both serve the app in development mode.🤖 Generated with Claude Code