Page 1 of 1

Ersetzen Sie veraltete Nr. NILS.WSDL2JAVA -Plugin in Gradle 7+ für die WSDL -Klassengenerierung?

Posted: 27 Jan 2025, 10:59
by Anonymous
Aktualisierung einer Java-Anwendung von Java 11 auf 17, und als Teil des Upgrades habe ich Gradle von Version 6.8.3 auf 8.0.2 aktualisiert. Die Anwendung verwendet Spring Boot Version 2.7.18.
Die Anwendung verließ sich zuvor auf das Gradle-Plugin no.nils.wsdl2java (Version 0.12), um Java-Klassen aus einer WSDL-Datei zu generieren. Dieses Plugin wird in Gradle 7+ nicht mehr unterstützt, daher muss ich es durch eine andere Methode ersetzen.
vorherige Gradle-Konfiguration

Code: Select all

buildscript {
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}

plugins {
id 'org.springframework.boot' version '2.7.12'
id "org.sonarqube" version "4.3.1.3277"
id 'java'
id 'no.nils.wsdl2java' version "0.12"
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.sonarqube'
apply plugin: 'jacoco'
apply plugin: 'no.nils.wsdl2java'
apply plugin: 'project-report'

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

wsdl2java {
cxfVersion = "3.3.2"
wsdlDir = file("src/main/resources/wsdl")
wsdlsToGenerate = [['-autoNameResolution', "$wsdlDir/example.wsdl"]]
}
jar {
enabled = false
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:2021.0.5"
}
}
dependencies {

//===========SOAP===========
implementation("com.sun.xml.bind:jaxb-impl:3.0.2")
wsdl2java("com.sun.xml.bind:jaxb-impl:2.3.3")

implementation "javax.xml.bind:jaxb-api:2.3.1"
implementation "javax.xml.ws:jaxws-api:2.3.1"
implementation "com.sun.xml.ws:rt:2.3.1"
implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"
implementation "org.glassfish.main.javaee-api:javax.jws:3.1.2.2"
implementation "com.sun.xml.messaging.saaj:saaj-impl:1.5.1"
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'

//===========SOAP===========

}

sourceSets {
main {
java {
srcDirs "src/main/java"
}
}

test {
java {
srcDirs "src/test/java"
}

}
}
habe versucht, das Plugin no.nils.wsdl2java zu entfernen und es durch das Plugin io.mateo.cxf-codegen zu ersetzen. Konfiguration hinzugefügt, um den WSDL-Speicherort und das Ausgabeverzeichnis anzugeben.
Es wurde erwartet, dass das Plugin io.mateo.cxf-codegen Java-Klassen aus der angegebenen WSDL-Datei im bereitgestellten Verzeichnis generiert, ähnlich wie das no.nils.wsdl2java Plugin funktioniert