我正在使用
jaxb2-maven-plugin
版本 2.3 来生成 jaxb java beans。
src/main/java/x/y/z
下的预期生成bean。META-INF/sun-jaxb.episode
下创建了 src/main/java
文件。重点是我希望能够在同一目录中生成bean和
META-INF/
文件夹,例如src/main/java/x/y/z。否则至少不会在 META-INF/
下生成 src/main/java
文件夹。<packageName>
,则默认包(在 .xsd 文件中定义)将应用于生成的 bean。pom.xml
文件中的配置:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>schema-x</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<xjbSources>
<xjbSource>src/main/resources/path/to/file.xjb</xjbSource>
</xjbSources>
<sources>
<source>src/main/resources/path/to/file.xsd</source>
</sources>
<packageName>x.y.z</packageName>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
</plugin>
</plugins>
</build>
这适用于 jaxb2-maven-plugin,也适用于生成 java 源的任何插件:您应该在构建目录中生成输出。
如果没有并在像这里这样的
src
文件夹中生成,那么您将必须提交/推送生成的文件并拥有不稳定的构建。
插件的文档介绍了
outputDirectory
:
对应XJC参数:d。
创建生成的 Java 源文件的工作目录。
类型:java.io.File 必填:是 默认值:${project.build.directory}/ generated-sources/jaxb
然后,maven 编译器和 IDE 就能够获取此目录(或按照约定生成源中的任何子目录),并且您将能够在自己的代码中使用生成的源代码