#!/usr/bin/env bash set -euo pipefail if [ "$#" -lt 2 ]; then echo "Uso: $0 " echo "Exemplo: $0 com.exemplo vaadin-app" exit 1 fi GROUP_ID="$1" ARTIFACT_ID="$2" JAVA_VERSION="25" SPRING_BOOT_VERSION="4.1.0" VAADIN_VERSION="25.2.1" PACKAGE_DIR="${GROUP_ID//./\/}" BASE_DIR="$ARTIFACT_ID" SRC_MAIN_JAVA="$BASE_DIR/src/main/java/$PACKAGE_DIR" SRC_TEST_JAVA="$BASE_DIR/src/test/java/$PACKAGE_DIR" SRC_MAIN_RESOURCES="$BASE_DIR/src/main/resources" echo "Criando projeto Vaadin + Spring Boot '$ARTIFACT_ID'..." echo "Group ID: $GROUP_ID" echo "Java: $JAVA_VERSION" echo "Spring Boot: $SPRING_BOOT_VERSION" echo "Vaadin: $VAADIN_VERSION" if [ -e "$BASE_DIR" ]; then echo "Erro: o diretório '$BASE_DIR' já existe." exit 1 fi mkdir -p "$SRC_MAIN_JAVA" mkdir -p "$SRC_TEST_JAVA" mkdir -p "$SRC_MAIN_RESOURCES" cat > "$BASE_DIR/pom.xml" < 4.0.0 org.springframework.boot spring-boot-starter-parent $SPRING_BOOT_VERSION $GROUP_ID $ARTIFACT_ID 1.0-SNAPSHOT jar $ARTIFACT_ID Projeto Vaadin com Spring Boot $JAVA_VERSION $VAADIN_VERSION UTF-8 com.vaadin vaadin-bom \${vaadin.version} pom import com.vaadin vaadin-spring-boot-starter org.springframework.boot spring-boot-devtools runtime true org.springframework.boot spring-boot-starter-test test com.vaadin vaadin-dev true org.springframework.boot spring-boot-maven-plugin com.vaadin vaadin-maven-plugin \${vaadin.version} prepare-frontend production com.vaadin vaadin-core com.vaadin vaadin-dev com.vaadin vaadin-maven-plugin \${vaadin.version} build-frontend EOF cat > "$SRC_MAIN_JAVA/App.java" < "$SRC_MAIN_JAVA/MainView.java" < Notification.show( "Olá, mundo!", 3000, Notification.Position.TOP_CENTER ) ); add(titulo, botao); } } EOF cat > "$SRC_TEST_JAVA/AppTest.java" < "$SRC_MAIN_RESOURCES/application.properties" < "$BASE_DIR/README.md" <