Skip to content

Instantly share code, notes, and snippets.

@jdigger
Last active December 11, 2015 17:38
Show Gist options
  • Save jdigger/4635958 to your computer and use it in GitHub Desktop.
Save jdigger/4635958 to your computer and use it in GitHub Desktop.
Working with generated files (such as wsdl2java) in Gradle
buildscript {
dependencies {
classpath "commons-io:commons-io:2.4"
}
}
configurations {
java2wsdl
}
dependencies {
java2wsdl "org.apache.cxf:cxf-tools-wsdlto-core:2.7.0"
java2wsdl "org.apache.cxf:cxf-tools-wsdlto-frontend-jaxws:2.7.0"
java2wsdl "org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:2.7.0"
}
def java2wsdl = task generateJavaFromWsdl(type: JavaExec) {
def wsdl = file('src/main/resources/wsdl/service.wsdl')
def genSrcDir = file("${buildDir}/generated-sources")
inputs.file wsdl
outputs.dir genSrcDir
classpath configurations.java2wsdl
main "org.apache.cxf.tools.wsdlto.WSDLToJava"
args '-d', genSrcDir.toString(), wsdl.toString()
def byteArrayOutputStream = new org.apache.commons.io.output.ByteArrayOutputStream()
errorOutput = new org.apache.commons.io.output.TeeOutputStream(System.err, byteArrayOutputStream)
doLast {
def str = byteArrayOutputStream.toString()
if (str.contains('Usage : wsdl2java') || str.contains('WSDLToJava Error')) {
throw new TaskExecutionException(
tasks[name],
new IOException("WSDLToJava has failed. Please see output")
)
}
}
}
compileJava.dependsOn += java2wsdl
compileJava.source java2wsdl.outputs.files, sourceSets.main.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment