【问题标题】:Gradle Kotlin DSL with wsdl2javaGradle Kotlin DSL 与 wsdl2java
【发布时间】:2019-09-15 18:50:29
【问题描述】:

从 Groovy 迁移到 Kotlin,偶然发现了一个关于 wsdl2java 生成的简单问题。

问题很简单,有没有人有很好的例子。 Google 在 Kotlin DSL 方面不是很有帮助,也不是很好,但在语法方面也是如此。

同样使用 OpenJDK11。


plugins {
  id("no.nils.wsdl2java") version "0.10"
}


wsdl2java {
  enabled = true
  wsdlsToGenerate = [
    [
      "-xjc",
      "-p", "bla.bla.generated",
      "-wsdlLocation", "classpath:wsdl/v1.wsdl",
      "-autoNameResolution", "$projectDir/src/main/resources/wsdl/v1.wsdl"
    ],
    [
      "-xjc",
      "-p", "bla.bla.generated",
      "-wsdlLocation", "classpath:wsdl/v2.wsdl",
      "-autoNameResolution", "$projectDir/src/main/resources/wsdl/v2.wsdl"
    ]]
  generatedWsdlDir = file("$projectDir/src/main/java")
  wsdlDir = file("$projectDir/src/main/resources/wsdl")
}

dependencies {

  implementation(project(":common"))
  implementation(project(":etcd"))

  implementation("org.springframework.boot:spring-boot-starter-actuator")
  implementation("org.springframework.boot:spring-boot-starter-data-jpa")
  implementation("org.springframework.boot:spring-boot-starter-hateoas")
  implementation("org.springframework.boot:spring-boot-starter-quartz")
  implementation("org.springframework.boot:spring-boot-starter-security")
  implementation("org.springframework.boot:spring-boot-starter-validation")
  implementation("org.springframework.boot:spring-boot-starter-web")
  implementation("org.springframework.boot:spring-boot-starter-web-services")

  api("no.nils:wsdl2java")

  compileOnly("org.projectlombok:lombok")
  testImplementation("org.springframework.boot:spring-boot-starter-test")
  testImplementation("org.springframework.security:spring-security-test")
}

tasks.jar {
  archiveFileName.set("ext.jar")
}



【问题讨论】:

    标签: gradle wsdl2java gradle-kotlin-dsl


    【解决方案1】:

    我让 wsdl2java 通过以下试验和错误工作:

    plugins {
        id("no.nils.wsdl2java") version "0.10"
    }
    
    wsdl2javaExt {
        cxfVersion = "3.3.0"
        deleteGeneratedSourcesOnClean = true
    }
    
    tasks.withType<no.nils.wsdl2java.Wsdl2JavaTask> {
        // The use of ArrayList(listOf) is necessary as the Wsdl2JavaTask seems to make inline changes to its arguments
        wsdlsToGenerate = listOf(
                ArrayList(listOf("-p", "dk.grydholt.integration.sacho",
                        "-autoNameResolution", "-xjc-npa",
                        "-wsdlLocation", "classpath:wsdl/sacho/EduModelService.wsdl",
                        "$projectDir/src/main/resources/wsdl/sacho/EduModelService.wsdl")))
    
        generatedWsdlDir = file("$projectDir/src/generated/java")
        wsdlDir = file("$projectDir/src/main/resources/wsdl/sacho")
    }
    
    sourceSets {
        create("generated") {
            java.srcDirs(listOf("src/generated/java"))
        }
    }
    

    注意 ArrayList 的使用。我花了一些时间进行调试,因为如果你执行 listOf(listOf("...")),你会得到奇怪的类型错误。

    【讨论】:

      猜你喜欢
      • 2019-03-22
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 2020-01-18
      • 2019-08-20
      • 1970-01-01
      相关资源
      最近更新 更多