我是新手。在我的项目中,我有xsd文件,我想从该xsd生成java类(仅使用xmlbeans)。如何在gradle中做到这一点。
我正在使用axis2 1.6.1,gradle,xmlbean 2.3.0`(JAXB不是我当前项目中的一个选项)。
答案 0 :(得分:3)
我不得不修改Stanislav的答案以使插件正常工作。即以下列方式设置sourceSet:
sourceSets {
xmlbeans {
java {
srcDirs = ['dir/schema']
}
}
}
如果有人遇到同样的问题。
答案 1 :(得分:1)
据我所知,您可以使用{{3}}。现在不能说,是否可以将xmlbean的版本更改为旧版本。
您只需将插件应用于构建脚本:
apply from: 'https://raw.github.com/rartavia/gradle-plugins/master/xmlbeansPlugin/xmlbeans.gradle'
然后声明xmlbeans
配置及其依赖
configurations {
xmlbeans
}
dependencies {
xmlbeans 'org.apache.xmlbeans:xmlbeans:2.5.0'
}
之后,您必须指定xsd文件位置
sourceSets {
schemas {
srcDir = 'src/main/schemas'
}
}
现在你可以调用compileXmlSchemas
任务来生成类
答案 2 :(得分:1)
java -classpath xbean.jar org.apache.xmlbeans.impl.tool.SchemaCompiler
-src <OUTPUT_SOURCE_FOLDER>
-out <OUTPUT>.jar <SOURCE>.xsd
-compiler "javac.exe"
-javasource "1.5"
答案 3 :(得分:0)
任何用最新的 gradle build (6.x) 寻找这个问题的答案的人,这里是我如何在 eclipse 中配置项目(版本:2020-06 (4.16.0))并生成 Java (8 ) 使用 gradle 任务自动从 XSD 文件中提取类。
build.gradle 文件中的代码片段
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'gradle.plugin.com.liferay:gradle-plugins-xsd-builder:1.0.10'
}
}
dependencies {
compile "org.apache.xmlbeans:xmlbeans:4.0.0"
... //other dependencies
}
.... // other code
apply plugin: "com.liferay.xsd.builder"
添加以上代码后,刷新eclipse然后更新eclipse中的gradle任务视图,应该可以看到buildXSD下build下的任务:buildXSD > 组。将所有 XSD 文件添加到 xsd 文件夹中(将此文件夹保留在项目文件夹的根目录下)并双击 buildXSD 任务以从 XSD 生成所有 Java 类型,非常干净。如果您将来要添加任何 XSD,只需将其放入 xsd 文件夹中,然后再次运行相同的任务。此任务将生成一个 jar 文件,其中包含项目 lib 文件夹中的所有 Java 类型。
对于好奇的人 - 目前,我们的工作如下:
上述所有步骤都是通过单个 gradle 任务(clean + jar + customCopyTask + deployToServer)自动完成的,它可以完美地自动执行此操作。 注意:jar 任务也会生成基于 XSD 的 jar 文件。因此,您可能想要编写自定义 jar 任务。