Far*_*zad 5 gradle maven maven-jaxb2-plugin
我需要将 Maven 项目迁移到 gradle。maven 项目使用的maven-jaxb2-plugin是这样的(插件的版本设置在 root 中pom.xml):
<plugin>
<groupId>...</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<generatePackage>package for generated classes</generatePackage>
<schemaDirectory>directory containing XSD files</schemaDirectory>
<includeSchemas>
<includeSchema>XSD file name</includeSchema>
<includeSchema>XSD file name</includeSchema>
...
</includeSchemas>
<strict>true</strict>
<verbose>true</verbose>
<extension>true</extension>
</configuration>
<plugin>
Run Code Online (Sandbox Code Playgroud)
所以,我想在 gradle 中实现相同的功能,这就是我所拥有的:
plugins {
id "com.github.jacobono.jaxb" version "1.3.5"
}
dependencies {
jaxb "org.glassfish.jaxb:jaxb-runtime:2.2.11"
jaxb "org.glassfish.jaxb:jaxb-xjc:2.2.11"
}
jaxb {
xsdDir = "directory containing XSD files"
xjc {
taskClassname = "com.sun.tools.xjc.XJC2Task"
generatedPackage = "package for generated classes"
}
}
compileJava.dependsOn xjc
Run Code Online (Sandbox Code Playgroud)
该项目是多项目构建的一部分,依赖于其他项目等,但我认为这些无关紧要。
我在正确的轨道上吗??我这么问是因为行为似乎并不相同,当我做mvn clean install和gradle clean build
题:
includeSchema在 maven 中使用的那样)?我的问题:
小智 4
这就是我在进行研究后完成这项任务的方法。这正如预期的那样。将以下内容添加到您的构建文件中。
buildscript {
dependencies {
classpath 'com.github.jacobono:gradle-jaxb-plugin:1.3.5'
}
}
apply plugin: 'com.github.jacobono.jaxb'
dependencies {
jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.7-b41'
jaxb 'com.sun.xml.bind:jaxb-impl:2.2.7-b41'
jaxb 'javax.xml.bind:jaxb-api:2.2.7'
jaxb "org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.5"
jaxb "org.jvnet.jaxb2_commons:jaxb2-basics:0.6.4"
jaxb "org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.4"
jaxb "org.jvnet.jaxb2_commons:jaxb2-value-constructor:3.0"
}
jaxb {
System.setProperty('javax.xml.accessExternalSchema', 'all') //To solve external schema dependencies
xsdDir = "src/main/resources/schema/" //xsd directory
xjc {
taskClassname = "org.jvnet.jaxb2_commons.xjc.XJC2Task" // This is for setter plugin
args = ["-Xsetters","-Xsetters-mode=direct"]
}
}
Run Code Online (Sandbox Code Playgroud)
您应该运行“gradle xjc”从 xsd 文件生成相关的 java 文件。
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |