是否可以在Maven中使用JAXB指定类似XSD根节点的东西来生成java类?
我希望我的问题很清楚:)
答案 0 :(得分:0)
你的问题是我经常看到的,我会说XSD的大型机构是典型的。
不幸的是,我不知道JAXB方式来控制生成过程,而不是你想要的方式。
我为此开发的替代解决方案,因此我从这一点开始的偏见依赖于自动XML Schema Refactoring(XSR)。它基本上是你的XSD,从一组XSD对象(在你的情况下可能是几个全局元素,也许是某些类型),它将生成一个XSD的子集,只包含必要的项目,没有绒毛。让这些XSD通过JAXB,它会给你你想要的。这涉及QTAssistant及其XSR功能。高级步骤是:
QTAssistant支持通过Exec Maven Plugin与Maven进行命令行集成,但仅限于Windows。
答案 1 :(得分:0)
有一个用于生成可以接受XJC参数的Java类的插件,它可能是更高级配置中的一个钩子。但我不熟悉这些。
取自插件的来源:
/**
* Space separated string of extra arguments,
* for instance <code>-Xfluent-api -episode somefile</code>;
* These will be passed on to XJC as
* <code>"-Xfluent-api" "-episode" "somefile"</code> options.
*
* @parameter expression="${xjc.arguments}"
*/
protected String arguments;
插件配置的pom.xml示例:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>xjc</id>
<phase>process-resources</phase>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>package.name</packageName>
<schemaDirectory>${basedir}/src/main/webapp/WEB-INF/xsd</schemaDirectory>
<bindingDirectory>${basedir}/src/main/java</bindingDirectory>
</configuration>
</plugin>