让springboot支持groovy 4.0 (apache打包)|需要3.0.0-M2或更高版本



弹簧靴>2.3.1将从codehaus获取groovy-bom,而不是从org.apache.groovy打包中获取,即使您声明了org.apache.groovy dependencies

我发现这意味着弹簧靴>2.3.1不会构建groovy 4.0

甚至spring initializr也在…因为在springboot 2.6.7中,initializr使用的是org.codehaus中的groovy包。因此,这限制了2.6.7使用groovy 3.0.10,因为这是groovy在org中出现的截止时间。apache包装。还有帅呆了。X使用apache包

下面是从这个URL创建的gradle initializr

plugins {
  id 'org.springframework.boot' version '2.6.7'
  id 'io.spring.dependency-management' version '1.0.11.RELEASE'
  id 'groovy'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
  mavenCentral()
}
dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
  implementation 'org.springframework.boot:spring-boot-starter-data-rest'
  implementation 'org.codehaus.groovy:groovy'
  testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
  useJUnitPlatform()
}

对Groovy 4的支持将在Spring Framework 6和Spring Boot 3中出现。它目前在Spring Boot 3.0.0-M2中可用,发布到https://repo.spring.io/milestone。

您首先必须更改设置。Gradle添加以下内容:

pluginManagement {
    repositories {
        maven { url 'https://repo.spring.io/milestone' }
        gradlePluginPortal()
    }
}

然后我必须修改我的构建。Gradle如下:

plugins {
//    id 'org.springframework.boot' version '2.6.7'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'groovy'
}
plugins {
    id 'org.springframework.boot' version '3.0.0-M2'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = javaSrcVersion
targetCompatibility = javaClassVersion
repositories {
    mavenCentral()
    maven { url("https://repo.spring.io/milestone/")}
}
dependencies {
    runtimeOnly('com.h2database:h2')
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
//    implementation 'org.codehaus.groovy:groovy'
    implementation("org.apache.groovy:groovy:${groovyVersion}")
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation('com.google.code.findbugs:jsr305:latest.integration')
    
    implementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
    
    implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.1.0'
    implementation group: 'commons-io', name: 'commons-io', version: '2.11.0'
    testImplementation("org.testng:testng:${testNgVersion}")
}
tasks.named('test') {
    useJUnitPlatform()
}

相关内容

最新更新