Source Control
In addition to the standard directory layout of typical Java applications, Vaadin projects also include various files and folders related to the frontend tooling. A typical Vaadin application has a directory layout with something like the following content:
node_modules/ (1)
src/
└── main (2)
└── frontend (3)
└── generated/
└── themes/ (4)
└── my-theme (5)
└── styles.css (6)
└── index.html (7)
└── java
└── resources
└── test/ (8)
target/
package.json (9)
package-lock.json (10)
pom.xml (11)
vite.config.ts (12)
vite.generated.ts (13)
tsconfig.json (14)
types.d.ts (15)
-
A folder that caches the frontend modules upon which the project depends.
-
Application sources. This folder is auto-generated based on the contents of
package.json
andpackage-lock.json
. -
Frontend resources — including CSS, TypeScript, and JavaScript files — are placed in this folder.
-
This folder includes custom themes.
-
Each theme is in its own sub-folder. The name of this folder is provided as a parameter to the
@Theme
annotation to apply the theme to the application. -
styles.css
is the theme’s master style sheet that’s loaded automatically when the theme is applied. -
index.html
is an auto-generated file that defines the outermost structure of the application. -
Test sources.
-
package.json
defines the version ranges of the frontend dependencies. -
package-lock.json
defines the exact versions of the frontend dependencies used in this project. -
Project and configuration details used by Maven to build the project.
-
Can optionally be used to customize Vite configuration.
-
An auto-generated file containing the Vite configuration needed for all applications.
-
An auto-generated file that defines the configuration for compiling TypeScript code in the project, when needed.
-
An auto-generated file that defines the TypeScript type definitions used in the project.
Note
|
Project Content May Vary
The directory layout shown here may vary depending on the project’s configuration.
For example, a project using |
The following .gitignore
file lists the files and folders that should be excluded from a typical Vaadin project.
/target/
.gradle
build/
!**/src/main/**/target/
!**/src/test/**/target/
!**/src/main/**/build/
!**/src/test/**/build/
.DS_Store
# The following files are generated/updated by vaadin-maven-plugin or vaadin-gradle-plugin
node_modules/
src/main/frontend/generated/
pnpmfile.js
.npmrc
webpack.generated.js
vite.generated.ts
# Browser drivers for local integration tests
drivers/
# Error screenshots generated by TestBench for failed integration tests
error-screenshots/
# Eclipse and STS
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
# IntelliJ IDEA
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
# VS Code
.vscode/
# Maven wrapper
.mvn/
mvnw
# The following are auto-generated by Vaadin if missing, but they should be added to source control if customized.
tsconfig.json
types.d.ts
index.html
9E89021E-38BA-4ECE-9EA6-8B6AC2DB9C2B