Dev*_*ble 0 configuration jaxb2 maven
我尝试使用 JAXB2 maven 插件从一堆 .xsd 文件生成 java 代码。如果我尝试在一次执行中从所有 xsd 生成,我将得到org.xml.sax.SAXParseException: 'root' is already defined. 我无法修改 xsd 文件,因此我需要独立生成每个文件。我找到了以下 pom 配置来实现这一目标:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>jaxb-Execution1</id>
<phase>generate-sources</phase>
<goals><goal>xjc</goal></goals>
<configuration>
<schemaDirectory>${jaxbSchemaDirectory}</schemaDirectory>
<outputDirectory>${jaxbGenerateDirectory}</outputDirectory>
<staleFile>${jaxbGenerateDirectory}/.staleFlagExecution1</staleFile>
<bindingDirectory>${jaxbSchemaDirectory}</bindingDirectory>
<bindingFiles>bindings1.xml</bindingFiles>
<schemaFiles>schema1.xsd</schemaFiles>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
<execution>
<id>jaxb-Execution2</id>
<phase>generate-sources</phase>
<goals><goal>xjc</goal></goals>
<configuration>
<schemaDirectory>${jaxbSchemaDirectory}</schemaDirectory>
<outputDirectory>${jaxbGenerateDirectory}</outputDirectory>
<staleFile>${jaxbGenerateDirectory}/.staleFlagExecution2</staleFile>
<bindingDirectory>${jaxbSchemaDirectory}</bindingDirectory>
<bindingFiles>bindings2.xml</bindingFiles>
<schemaFiles>schema2.xsd</schemaFiles>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
</executions>
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。问题是配置不是从执行块内部读取的。这是为什么?我使用的是maven 2.2.1。
当我尝试使用以下命令运行插件时,我遇到了同样的问题:
mvn jaxb2:xjc
Run Code Online (Sandbox Code Playgroud)
我的解决方法是使用:
mvn generate-sources
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3483 次 |
| 最近记录: |