1

对我来说,每次构建 maven 时,我的所有文件都会重新生成。我不希望这样,因为我没有对我的 .xsd 文件进行任何更改,而发生的情况是,因为它们是重新生成的,git 将它们视为对这些文件进行了更改。

这是我的配置:

<execution>
  <id>myExecution</id>
  <goals>
<goal>generate</goal>
  </goals>
   <configuration>
     <schemaDirectory>src/main/resources/MySchema.xsd</schemaDirectory>
     <generatePackage>com.mypackage</generatePackage>
     <generateDirectory>src/main/java</generateDirectory>
     <episode>false</episode>
   </configuration>
</execution>

有办法解决这个问题吗?

4

2 回答 2

2

永远不要将生成的源代码写入 src/main/java 目录。只需使用默认的generateDirectory值 (${project.build.directory}/generated-sources/xjc) - 它会自动添加到编译源中。

最佳实践是将构建过程生成的所有工件放入 maven 目标目录(又名 ${project.build.directory})。

另外,我建议您使用Codehaus JAXB-2 Maven 插件,因为它似乎维护得更好。

于 2014-05-21T11:57:24.893 回答
0

我也在寻找您需要的相同解决方案。

为了避免每次重新编译代码都耗费时间,在 maven 中我创建了两个配置文件。

第一个配置文件仅用于从 XSD 重新创建类:插件位于配置文件内

<profile>
  <id>create-from-xsd</id>
  <plugins>
     <plugin>
       ... maven jax plugin ...
     </plugin>
  <plugins>
<profile>

然后是没有插件的另一个配置文件。

当我需要 jax-b 时,我选择配置文件 1 并生成类;在其他情况下,我使用配置文件 2。

于 2019-02-05T18:09:04.810 回答