Ersetzen Sie veraltete Nr. NILS.WSDL2JAVA -Plugin in Gradle 7+ für die WSDL -Klassengenerierung?
Posted: 27 Jan 2025, 10:59
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
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
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"
}
}
}
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