build.gradle•2.27 kB
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.5'
id 'io.spring.dependency-management' version '1.1.7'
id 'com.diffplug.spotless' version '7.2.1'
id 'com.github.jakemarsden.git-hooks' version '0.0.2'
}
group = 'com.visotrust.viso'
version = '1.1.1'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
}
ext {
set('springAiVersion', "1.1.0-M1")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.ai:spring-ai-starter-mcp-server-webmvc'
implementation 'com.fasterxml.jackson.core:jackson-databind'
implementation 'org.apache.httpcomponents.client5:httpclient5'
// Spring Security dependencies (without starter)
implementation 'org.springframework.security:spring-security-web'
implementation 'org.springframework.security:spring-security-config'
implementation 'org.springframework.security:spring-security-core'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
spotless {
java {
// Use Google's Java formatter
googleJavaFormat().aosp()
// Remove unused imports
importOrder()
removeUnusedImports()
// Add license header
licenseHeader '/* Copyright (c) 2025 VISO TRUST */'
trimTrailingWhitespace()
endWithNewline()
}
format 'misc', {
// Define the files to format
target '**/*.md', '**/*.xml', '**/*.yml', '**/*.yaml', '**/*.json', '**/*.properties'
// Define the formatting rules
trimTrailingWhitespace()
indentWithSpaces(4)
endWithNewline()
}
}
// Configure Git hooks
gitHooks {
hooks = ['pre-commit': 'spotlessCheck']
}