Я использую CXF JavaToWS для создания файла WSDL на основе кода Java. Я использую Gradle для сборки. Мой код Java ссылается на другой проект, и я связал их в своих файлах settings.gradle и build.gradle. Это хорошо работает.Ошибка JavaToWS: java.lang.NoClassDefFoundError
Проблема, которую я вижу, это JavaToWS, которая получает NoClassDefFoundError для одного из классов, который находится во вторичном проекте. Это похоже на то, что JavaToWS не имеет доступа к classpath проекта. Eclipse находит все, что ему нужно, и проект строится без ошибок. Это просто шаг JavaToWS, который терпит неудачу. Любые идеи о том, как я могу заставить JavaToWS увидеть мой путь к классам? Есть ли способ передать более чем один параметр аргументу «-cp»?
Вот мой JavaToWS шаг в моей gradle.build файле:
task java2ws(type: JavaExec) {
ext {
outputDir = file("src/main/java")
mainDir = file("$buildDir/classes/main")
wsdlDir = file("src/main/resources/wsdl")
}
main = 'org.apache.cxf.tools.java2ws.JavaToWS'
classpath = configurations.cxf
// Arguments to be passed to JavaToWS.
args '-cp', mainDir
args '-s', outputDir
args '-d', wsdlDir
args '-classdir', mainDir
args '-o', 'MyService.wsdl'
args '-createxsdimports'
args '-verbose'
args '-frontend', 'jaxws'
args '-databinding', 'jaxb'
args '-wsdl'
args '-wrapperbean', 'com.foo.MyService'
}