You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle 7+中替换已废弃的no.nils.wsdl2java插件生成WSDL类

替换no.nils.wsdl2java为io.mateo.cxf-codegen适配Gradle8+、Java17方案

以下是适配你环境的完整Gradle配置,替换了废弃的wsdl2java插件并调整了相关依赖:

plugins {
    id 'org.springframework.boot' version '2.7.18'
    id "org.sonarqube" version "4.3.1.3277"
    id 'java'
    id 'idea'
    id 'jacoco'
    id 'project-report'
    id 'io.mateo.cxf-codegen' version '2.0.0' // 替换原no.nils.wsdl2java插件
}

group = 'com.example.abc'
version = '0.0.1'
sourceCompatibility = '17'

// CXF代码生成配置,替代原wsdl2java块
cxfCodegen {
    toolOptions {
        // 升级CXF版本到兼容Java17的3.6.3
        cxfVersion = "3.6.3"
        // 启用自动名称解析,对应原配置的-autoNameResolution参数
        autoNameResolution = true
    }
    wsdlSources {
        main {
            // 指定WSDL文件路径,对应原wsdlDir下的example.wsdl
            srcDir file("src/main/resources/wsdl")
            include "example.wsdl"
        }
    }
    // 可选:自定义生成代码的输出目录,默认是build/generated/sources/cxf/main/java
    // outputDir = file("src/main/generated-java")
}

jar {
    enabled = false
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:2021.0.5"
    }
}

dependencies {
    // SOAP相关依赖,适配Java17和CXF3.6.x
    implementation "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0"
    implementation "com.sun.xml.bind:jaxb-impl:4.0.4"
    implementation "jakarta.xml.ws:jakarta.xml.ws-api:4.0.0"
    implementation "com.sun.xml.ws:jaxws-rt:4.0.2"
    implementation "org.glassfish.jaxb:jaxb-runtime:4.0.4"
    implementation "com.sun.xml.messaging.saaj:saaj-impl:3.0.2"
    
    implementation (group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.1.2'){
        exclude group: 'org.yaml', module: 'snakeyaml'
    }
    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.14.1'
}

sourceSets {
    main {
        java {
            srcDirs "src/main/java"
            // 添加生成代码目录到源码集,确保编译时能识别
            srcDir "${cxfCodegen.outputDir}/main/java"
        }
    }
}

关键改动说明

  • 插件替换:移除no.nils.wsdl2java插件,添加io.mateo.cxf-codegen插件(版本2.0.0兼容Gradle7+、Java11+)
  • CXF版本升级:将CXF从3.3.2升级到3.6.3,该版本完全支持Java17,同时适配Jakarta API规范
  • 代码生成配置调整:用cxfCodegen块替代原wsdl2java块,通过wsdlSources指定WSDL文件,autoNameResolution对应原配置的-autoNameResolution参数
  • 依赖更新:将原javax.*开头的依赖替换为jakarta.*的对应版本,适配Java17的Jakarta EE规范,同时更新JAXB、JAX-WS相关实现包版本
  • 源码集配置:将CXF生成的代码目录添加到main源码集,确保编译阶段能正确识别生成的Java类

执行代码生成任务:运行./gradlew cxfCodegenMain即可生成对应Java类,该任务会自动绑定到compileJava任务,执行编译时会自动触发代码生成。

内容的提问来源于stack exchange,提问作者Isuru Senanayake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:35:19