{"id":16965154,"url":"https://github.com/gregswindle/mvn-spring-boot-thymeleaf-nodejs","last_synced_at":"2026-04-11T10:34:55.101Z","repository":{"id":90405178,"uuid":"110536315","full_name":"gregswindle/mvn-spring-boot-thymeleaf-nodejs","owner":"gregswindle","description":"Starter project for designing HTML templates with Spring Boot, Thymeleaf, and Node.js tooling.","archived":false,"fork":false,"pushed_at":"2019-02-22T18:09:02.000Z","size":1318,"stargazers_count":1,"open_issues_count":22,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-03T16:20:51.562Z","etag":null,"topics":["eslint","html5","java","jest","maven","maven-pom","nodejs","spring-boot","spring-boot-starter-test","spring-boot-starter-thymeleaf"],"latest_commit_sha":null,"homepage":"https://gregswindle.github.io/mvn-spring-boot-thymeleaf-nodejs","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gregswindle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-13T10:51:45.000Z","updated_at":"2020-08-27T20:30:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"bcab91d6-9895-42d8-8502-1b8fe382571a","html_url":"https://github.com/gregswindle/mvn-spring-boot-thymeleaf-nodejs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gregswindle/mvn-spring-boot-thymeleaf-nodejs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregswindle%2Fmvn-spring-boot-thymeleaf-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregswindle%2Fmvn-spring-boot-thymeleaf-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregswindle%2Fmvn-spring-boot-thymeleaf-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregswindle%2Fmvn-spring-boot-thymeleaf-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregswindle","download_url":"https://codeload.github.com/gregswindle/mvn-spring-boot-thymeleaf-nodejs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregswindle%2Fmvn-spring-boot-thymeleaf-nodejs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31677819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","html5","java","jest","maven","maven-pom","nodejs","spring-boot","spring-boot-starter-test","spring-boot-starter-thymeleaf"],"created_at":"2024-10-13T23:45:10.129Z","updated_at":"2026-04-11T10:34:55.075Z","avatar_url":"https://github.com/gregswindle.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `spring-boot-starter-thymeleaf`\n\n[![License][license-badge-image]][license-url]\n[![Known Vulnerabilities](https://snyk.io/test/github/gregswindle/spring-boot-starter-thymeleaf/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/gregswindle/spring-boot-starter-thymeleaf)\n[![Java Dependency Status](https://dependencyci.com/github/gregswindle/spring-boot-starter-thymeleaf/badge)](https://dependencyci.com/github/gregswindle/spring-boot-starter-thymeleaf)\n[![Node.js Dependency Status][depstat-image]][depstat-url]\n[![Node.js DevDependency Status][depstat-dev-image]][depstat-dev-url]\n[![Greenkeeper badge](https://badges.greenkeeper.io/gregswindle/spring-boot-starter-thymeleaf.svg)](https://greenkeeper.io/)\n\u003cbr\u003e\n[![Appveyor Status][appveyor-image]][appveyor-url]\n[![Build Status][travis-image]][travis-url]\n[![Coveralls Status][coveralls-image]][coveralls-url]\n\n\n\u003e Starter project for designing HTML templates with Spring Boot, Thymeleaf, and Node.js tooling.\n\n## Table of contents\n\u003c!-- ⛔️ AUTO-GENERATED-CONTENT:START (TOC:excludeText=Table of contents) --\u003e\n- [1. Overview](#1-overview)\n- [2. Getting started](#2-getting-started)\n  * [2.1. Prerequisite software](#21-prerequisite-software)\n  * [2.2. Installation](#22-installation)\n- [3. Configuration](#3-configuration)\n- [4. Usage](#4-usage)\n  * [4.1. Launch the site (locally)](#41-launch-the-site-locally)\n  * [4.2. Build the site](#42-build-the-site)\n  * [4.3. Execute Java and JavaScript unit tests](#43-execute-java-and-javascript-unit-tests)\n  * [4.4. List all build dependencies](#44-list-all-build-dependencies)\n  * [4.5. Generate Javadocs](#45-generate-javadocs)\n  * [4.6. Generate project reports](#46-generate-project-reports)\n- [5. Semantic version and `CHANGELOG`](#5-semantic-version-and-changelog)\n- [6. Contributing](#6-contributing)\n- [7. License](#7-license)\n\u003c!-- ⛔️ AUTO-GENERATED-CONTENT:END --\u003e\n\n## 1. Overview\n\n`spring-boot-starter-thymeleaf` uses the Spring Project [`spring-boot-starter-thymeleaf`][spring-boot-starter-thymeleaf-mvn-repo-url] with the [`exec-maven-plugin`][exec-maven-plugin-url] in order to execute [`npm-run-scripts`][npm-run-script-url] during [Maven's build lifecycle][maven-build-lifecycle-url].\n\n## 2. Getting started\n\n### 2.1. Prerequisite software\n\n`spring-boot-starter-thymeleaf` is written in Java and JavaScript, both of which must be installed prior to use. Java and JavaScript require npm and Maven respectively, which are used for installing dependencies and executing build, test, and deploy tasks.\n\n| Dependency              | Required                                           | OS              | Notes                                                                                                                                                                     |\n|-------------------------|----------------------------------------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Java JDK 8 (or greater) | **Yes**.                                               | All             | Required for all software products that depend on the Spring Framework.                                                                                                   |\n| Maven                   | **No**. This product is bundled with `mvnw`.                                              | All             | A Java build, test, and deploy management framework. Maven also manages dependencies.                                                                                     |\n| Node.js (includes npm)  | **Yes**. If you cannot install `nvm`, install Node.js. | All             | Required for JavaScript build, test, and deploy automation.                                                                                                               |\n| `nvm`                   | **No**, but _highly_ recommended.                      | macOS and Linux | Node Version Manager allows you to install and switch among multiple versions of Node.js (and npm) via the CLI. Most cloud-based CI services (e.g., Travis CI) use `nvm`. |\n\n### 2.2. Installation\n\nOpen a Terminal and run:\n\n```bash\n$ git clone https://github.com/gregswindle/spring-boot-starter-thymeleaf.git\n```\n\nGo into the installation directory:\n\n```bash\n$ cd spring-boot-starter-thymeleaf\n```\n\nInstall all Java and JavaScript dependencies:\n\n```bash\n$ ./mvnw clean install -DskipTests\n```\n\n## 3. Configuration\n\n`spring-boot-starter-thymeleaf` uses several CI-services to automate build and test execution. All are optional, but if you choose to use them, you'll need to modify your `pom.xml` and `package.json` manifest files.\n\n| Service      | Category         | Required    | Notes                                                                                                                                                                                                      |\n|--------------|------------------|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Appveyor     | CI               | **No**      | Build and test on Windows servers.                                                                                                                                                                         |\n| Coveralls    | Test             | **No**      | Tracks test coverage over time.                                                                                                                                                                            |\n| DependencyCI | Dependency drift | **No**      | Tracks Java and JavaScript dependencies for updates.                                                                                                                                                       |\n| SonarCloud   | Code quality     | **No**      | \"All-in-one\" code quality inspection service. We use SonarCloud's measure badges in our PULL_REQUEST_TEMPLATE to quickly assess the quality of PRs.                                                        |\n| Snyk         | Security         | **No**      | This is enabled by default. To disable, use the flag `--DskipSnykScan`. To use Snyk, you'll need to follow these [Snyk installation instructions](https://github.com/snyk/snyk-maven-plugin#installation). |\n| Travis CI    | CI               | **No**      | Build and test on Linux and macOS.                                                                                                                                                                         |\n\n\n## 4. Usage\n\n### 4.1. Launch the site (locally)\n\n```bash\n$ ./mvnw spring-boot:run\n```\n\n\u003e **:bulb: TIP:** Open http://localhost:8080/hello?name=Thymeleaf%20professional in a web browser to view the web site.\n\n### 4.2. Build the site\n\n```bash\n$ ./mvnw package\n```\n\n### 4.3. Execute Java and JavaScript unit tests\n\n```bash\n$ ./mvnw test\n```\n\n### 4.4. List all build dependencies\n\n```bash\n$ ./mvnw dependency:tree\n```\n\n### 4.5. Generate Javadocs\n\n```bash\n$ ./mvnw javadoc:javadoc\n```\n\n\u003e **:bulb: Tip:** Open `./target/apidocs/index.html` in a web browser to view the Javadocs.\n\n\n### 4.6. Generate project reports\n\n```bash\n$ ./mvnw site\n```\n\n\u003e **:bulb: Tip:** Open `./target/site/index.html` in a web browser to view the Project Information reports.\n\n\u003c!--\n Background\n\n_If `spring-boot-starter-thymeleaf` depends on important but not widely known abstractions or other ecosystems, explain them here. This is also a good place to explain the product's motivation if similar products already exist._\n\n--\u003e\n## 5. Semantic version and `CHANGELOG`\n\nThe latest version of `spring-boot-starter-thymeleaf` is `0.0.1-SNAPSHOT`. View the [`CHANGELOG`][changelog-url] for details.\n\n## 6. Contributing\n\u003e [![Learn how to make a Pull Request with free training][prs-welcome-badge-image]][prs-welcome-url]\n\u003e\n\u003e We welcome contributors with [Pull Requests][prs-welcome-url]!\n\nContributions in the form of GitHub pull requests are welcome. Before embarking on a significant change, please adhere to the following guidelines:\n\n  1. Read the [Code of Conduct][code-of-conduct-url].\n  1. Create an issue to discuss the proposed change and ensure that it is likely to be merged:\n      * [Report a defect][issues-new-defect-url] (aka \"bug\")\n      * [Request a new feature][issues-new-feat-url]\n  1. Follow [Contributing to `spring-boot-starter-thymeleaf`][contributing-url]'s coding conventions and Git workflow if you're willing and able to program (or want to learn how).\n\n## 7. License\n\n[MIT][license-url] © [Greg Swindle][author-url].\n\n\n\n\n\u003c!-- ⛔️ 📝 NOTE: PLEASE ALPHABETIZE LINK REFERENCES. 📝 ⛔️ --\u003e\n\n[appveyor-image]: https://ci.appveyor.com/api/projects/status/github/gregswindle/spring-boot-starter-thymeleaf?retina=true\u0026svg=true\n[appveyor-url]: https://ci.appveyor.com/api/projects/status/github/gregswindle/spring-boot-starter-thymeleaf?retina=true\u0026svg=true\n[author-url]: https://github.com/gregswindle\n[changelog-url]: ./CHANGELOG.md\n[code-of-conduct-url]: ./CODE_OF_CONDUCT.md\n[contributing-url]: ./CONTRIBUTING.md\n[coveralls-image]: https://img.shields.io/coveralls/gregswindle/spring-boot-starter-thymeleaf/master.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/gregswindle/spring-boot-starter-thymeleaf\n[depstat-dev-image]: https://david-dm.org/gregswindle/spring-boot-starter-thymeleaf/dev-status.svg?style=flat-square\n[depstat-dev-url]: https://david-dm.org/gregswindle/spring-boot-starter-thymeleaf#info=devDependencies\n[depstat-image]: https://david-dm.org/gregswindle/spring-boot-starter-thymeleaf.svg?style=flat-square\n[depstat-url]: https://david-dm.org/gregswindle/spring-boot-starter-thymeleaf\n[exec-maven-plugin-url]: http://www.mojohaus.org/exec-maven-plugin/index.html\n[issues-new-defect-url]: /gregswindle/spring-boot-starter-thymeleaf/issues/new?title=fix%28affected-scope%29%3A+subject-line-with-very-few-words\u0026labels=Priority%3A+Medium%2CStatus%3A+Review+Needed%2CType%3A+Defect\u0026body=%2A%2A%F0%9F%92%A1+TIP%3A%2A%2A+Select+the+%E2%86%96%EF%B8%8E%E2%8E%BE+Preview+%E2%8F%8B+Tab+above+help+read+these+instructions.%0D%0A%0D%0A%23%23+1.+Issue+type%0D%0A%3E%E2%8C%A6+Type+the+letter+%22x%22+in+the+%22checkbox%22+the+best+describe+this+issue.%0D%0A%0D%0A-+%5Bx%5D+__Feature%3A__+I%27m+requesting+a+product+enhancement.%0D%0A%0D%0A%23%23+2.+User+story+summary%0D%0A%3E%E2%8C%A6+Describe+what+you+want+to+accomplish%2C+in+what+role%2Fcapacity%2C+and+why+it%27s+important+to+you.%0D%0A%0D%0A%3E+__EXAMPLE%3A__%0D%0A%3E+As+a+Applicant%2C%0D%0A%3E+I+want+to+submit+my+resume%0D%0A%3E+In+order+to+be+considered+for+a+job+opening.%0D%0A%0D%0AAs+a+%7Brole%7D%2C%0D%0AI+must%2Fneed%2Fwant%2Fshould+%7Bdo+something%7D%0D%0AIn+order+to+%7Bachieve+value%7D.%0D%0A%0D%0A%23%23+3.+Acceptance+criteria%0D%0A%3E%E2%8C%A6+Replace+the+examples+below+with+your+own+imperative%2C+%22true%2Ffalse%22+statements+for+the+__behavior+you+expect__+to+see%2C+or+the+behavior+that+__would__+be+true+if+there+were+no+errors+%28for+defects%29.%0D%0A%0D%0A-+%5B+%5D+1.+Job+Applicants+receive+a+confirmation+email+after+they+submit+their+resumes.%0D%0A-+%5B+%5D+2.+An+Applicant%27s+resume+information+isn%27t+lost+when+errors+occur.%0D%0A-+%5B+%5D+3.+%7Bcriterion-three%7D%0D%0A-+%5B+%5D+4.+%7Bcriterion-four%7D%0D%0A%0D%0A%3C%21--+%E2%9B%94%EF%B8%8F++Do+not+remove+anything+below+this+comment.+%E2%9B%94%EF%B8%8F++--%3E%0D%0A%5Bicon-info-image%5D%3A+..%2Fdocs%2Fimg%2Ficons8%2Ficon-info-50.png%0D%0A\n[issues-new-feat-url]: /gregswindle/spring-boot-starter-thymeleaf/issues/new?title=feat%28affected-scope%29%3A+subject-line-with-very-few-words\u0026labels=Priority%3A+Medium%2CStatus%3A+Review+Needed%2CType%3A+Feature\u0026body=%2A%2A%F0%9F%92%A1+TIP%3A%2A%2A+Select+the+%E2%86%96%EF%B8%8E%E2%8E%BE+Preview+%E2%8F%8B+Tab+above+help+read+these+instructions.%0D%0A%0D%0A%23%23+1.+Issue+type%0D%0A%3E%E2%8C%A6+Type+the+letter+%22x%22+in+the+%22checkbox%22+the+best+describe+this+issue.%0D%0A%0D%0A-+%5Bx%5D+__Feature%3A__+I%27m+requesting+a+product+enhancement.%0D%0A%0D%0A%23%23+2.+User+story+summary%0D%0A%3E%E2%8C%A6+Describe+what+you+want+to+accomplish%2C+in+what+role%2Fcapacity%2C+and+why+it%27s+important+to+you.%0D%0A%0D%0A%3E+__EXAMPLE%3A__%0D%0A%3E+As+a+Applicant%2C%0D%0A%3E+I+want+to+submit+my+resume%0D%0A%3E+In+order+to+be+considered+for+a+job+opening.%0D%0A%0D%0AAs+a+%7Brole%7D%2C%0D%0AI+must%2Fneed%2Fwant%2Fshould+%7Bdo+something%7D%0D%0AIn+order+to+%7Bachieve+value%7D.%0D%0A%0D%0A%23%23+3.+Acceptance+criteria%0D%0A%3E%E2%8C%A6+Replace+the+examples+below+with+your+own+imperative%2C+%22true%2Ffalse%22+statements+for+the+__behavior+you+expect__+to+see%2C+or+the+behavior+that+__would__+be+true+if+there+were+no+errors+%28for+defects%29.%0D%0A%0D%0A-+%5B+%5D+1.+Job+Applicants+receive+a+confirmation+email+after+they+submit+their+resumes.%0D%0A-+%5B+%5D+2.+An+Applicant%27s+resume+information+isn%27t+lost+when+errors+occur.%0D%0A-+%5B+%5D+3.+%7Bcriterion-three%7D%0D%0A-+%5B+%5D+4.+%7Bcriterion-four%7D%0D%0A%0D%0A%3C%21--+%E2%9B%94%EF%B8%8F++Do+not+remove+anything+below+this+comment.+%E2%9B%94%EF%B8%8F++--%3E%0D%0A%5Bicon-info-image%5D%3A+..%2Fdocs%2Fimg%2Ficons8%2Ficon-info-50.png%0D%0A\n[license-badge-image]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square\n[license-choose-url]: https://choosealicense.com/\n[license-no-license-url]: https://choosealicense.com/no-license/\n[license-unlicense-url]: https://choosealicense.com/licenses/#unlicense\n[license-url]: ./LICENSE\n[license-url]: ./LICENSE\n[maven-build-lifecycle-url]: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html\n[nodejs-url]: https://nodejs.org\n[npm-image]: https://img.shields.io/npm/v/spring-boot-starter-thymeleaf.svg?style=flat-square\n[npm-run-script-url]: https://docs.npmjs.com/cli/run-script\n[npm-script-url]: https://docs.npmjs.com/misc/scripts\n[npm-url]: https://npmjs.org/package/spring-boot-starter-thymeleaf\n[npmjs-url]: https://www.npmjs.com/\n[prs-welcome-badge-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[prs-welcome-url]: http://makeapullrequest.com\n[spring-boot-starter-thymeleaf-mvn-repo-url]: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf\n[travis-image]: https://img.shields.io/travis/gregswindle/spring-boot-starter-thymeleaf/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/gregswindle/spring-boot-starter-thymeleaf\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregswindle%2Fmvn-spring-boot-thymeleaf-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregswindle%2Fmvn-spring-boot-thymeleaf-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregswindle%2Fmvn-spring-boot-thymeleaf-nodejs/lists"}