146 lines
4.3 KiB
Groovy
146 lines
4.3 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'org.springframework.boot' version '3.5.0'
|
|
id 'io.spring.dependency-management' version '1.1.7'
|
|
id 'org.flywaydb.flyway' version '10.4.1'
|
|
}
|
|
|
|
group = 'com.jambotronGroup'
|
|
version = '0.0.1-SNAPSHOT'
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(17)
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'org.springframework.boot:spring-boot-starter-web'
|
|
implementation 'org.springframework.boot:spring-boot-starter'
|
|
implementation 'org.projectlombok:lombok:1.18.26'
|
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
|
implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'
|
|
implementation 'jakarta.validation:jakarta.validation-api:3.0.2'
|
|
implementation 'org.springframework.boot:spring-boot-starter-security'
|
|
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
|
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
|
|
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
|
|
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' // For JSON serialization/deserialization
|
|
implementation 'org.postgresql:postgresql:42.6.0'
|
|
implementation 'org.flywaydb:flyway-core'
|
|
implementation("org.flywaydb:flyway-database-postgresql:10.4.1")
|
|
|
|
implementation 'org.springframework.ai:spring-ai-zhipuai-spring-boot-starter:1.0.0-M6'
|
|
implementation 'org.springframework:spring-mock:2.0.8'
|
|
|
|
// Apache Commons Exec for process execution
|
|
implementation 'org.apache.commons:commons-exec:1.3'
|
|
|
|
implementation 'com.google.guava:guava:33.4.8-jre'
|
|
implementation 'io.micrometer:micrometer-core:1.12.0'
|
|
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
|
}
|
|
|
|
apply plugin: 'io.spring.dependency-management'
|
|
dependencyManagement {
|
|
imports {
|
|
mavenBom ("org.springframework.ai:spring-ai-retry:1.0.0")
|
|
}
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
|
|
|
|
tasks.register("bootRun_Dev") {
|
|
group = "_jambotron_build"
|
|
description = "Runs the Spring Boot application with the dev profile"
|
|
doFirst {
|
|
tasks.bootRun.configure {
|
|
systemProperty("spring.profiles.active", "dev")
|
|
}
|
|
}
|
|
finalizedBy("bootRun")
|
|
}
|
|
|
|
|
|
|
|
tasks.register('buildAngular_dev', Exec) {
|
|
group = "_jambotron_build"
|
|
description = "Builds the Angular application in development mode"
|
|
|
|
workingDir './jambotron-ui' // Path to your Angular project (e.g., './angular-app')
|
|
executable 'npm.cmd' // Use 'npm' for Unix-like systems or 'npm.cmd' for Windows
|
|
|
|
// Your Angular build command
|
|
//do not forget build_dev used port 8082 with proxy for connect to backend rest api
|
|
args = ['run', 'build_dev']
|
|
|
|
}
|
|
|
|
import org.apache.tools.ant.taskdefs.condition.Os // Обязательно добавь этот импорт в самое начало файла
|
|
tasks.register('buildAngular_prod', Exec) {
|
|
group = "_jambotron_build"
|
|
|
|
workingDir './jambotron-ui' // Path to your Angular project (e.g., './angular-app')
|
|
// Use 'npm' for Unix-like systems or 'npm.cmd' for Windows
|
|
executable = Os.isFamily(Os.FAMILY_WINDOWS) ? 'npm.cmd' : 'npm'
|
|
|
|
// Your Angular build command
|
|
args = ['run', 'build']
|
|
|
|
}
|
|
|
|
|
|
tasks.register('deleteStaticFolder_prod', Delete) {
|
|
group = "_jambotron_build"
|
|
|
|
dependsOn buildAngular_prod
|
|
def dirName = "src/main/resources/static"
|
|
file(dirName).list().each {
|
|
f ->
|
|
delete "${dirName}/${f}"
|
|
}
|
|
}
|
|
|
|
tasks.register('deleteStaticFolder_dev', Delete) {
|
|
group = "_jambotron_build"
|
|
|
|
dependsOn buildAngular_dev
|
|
def dirName = "src/main/resources/static"
|
|
file(dirName).list().each {
|
|
f ->
|
|
delete "${dirName}/${f}"
|
|
}
|
|
}
|
|
|
|
tasks.register('copyAngularBuild_prod', Copy) {
|
|
group = "_jambotron_build"
|
|
|
|
dependsOn deleteStaticFolder_prod
|
|
|
|
from 'jambotron-ui/dist/jambotron-ui/browser' // Path to your Angular dist folder
|
|
into "src/main/resources/static" // Path INSIDE the WAR
|
|
}
|
|
|
|
// Говорим задаче обработки ресурсов, что она НЕ ДОЛЖНА трогать статику фронтенда,
|
|
// пока фронтенд-задача не закончит свою работу.
|
|
processResources {
|
|
dependsOn copyAngularBuild_prod
|
|
}
|
|
tasks.register('copyAngularBuild_dev', Copy) {
|
|
group = "_jambotron_build"
|
|
dependsOn deleteStaticFolder_dev
|
|
from 'jambotron-ui/dist/jambotron-ui' // Path to your Angular dist folder
|
|
into "src/main/resources/static" // Path INSIDE the WAR
|
|
}
|
|
|
|
tasks.named('test') {
|
|
useJUnitPlatform()
|
|
}
|