Maven Xmlbeans 插件 - 为指定模式生成和保留文件

Maven Xmlbeans Plugin - Generate & Retain files for specified schemas

我正在尝试开发基于 XML 的软件。我正在使用 Maven 和 XmlBeans。

我有一个base-project,它提供了base-xml-schemas,它定义了一些元素、抽象类型等。

所有其他 sub-projects 也提供 xml-schemas。但是,这些子项目 imports/refers base-xml-schemas 使用和扩展 base-schemas.

定义的元素/类型

即使我的 sub-projects 依赖于 base-project,xmlbeans 插件要求 base-xml-schemas 出现在 schemaDirectory 的用法。言下之意,由于 base-xml-schemas.

,我所有的子项目现在都包含重复内容 generated/compiled

我希望我的 sub-projects 在他们的 jar 中只有那些特定于子项目的模式和内容,因为我的 base-project 将对我的 Jboss 中的所有应用程序可用 &这些类型可以在运行时解析。

了解到 xmlbean 需要所有引用的模式才能生成代码,现在我想删除所有 xmlbean 生成的代码,因为 [=22] =] 并保留与 sub-project 特定模式相关的文件。

我已经手动完成了这个并且我的项目编译和运行时工作正常,因为我的 maven 有依赖性并且 类 在运行时可用。

我的问题是 - 如何使用 maven 自动执行此操作,以便在生成后立即删除由于 base-schema 生成的文件。

Maven xmlbeans 插件默认绑定到生命周期阶段:generate-sources。

您需要将 clean 插件的 clean 目标绑定到上述生命周期阶段。

参考link- Remove or delete resource files from target directory using pom file

配置将是这样的:

      <execution>
        <id>clean-autogenerated-code</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>clean</goal>
        </goals>
        <configuration>
         <filesets>
            <fileset>
              <directory>some/relative/path/location/of/autogeneratd/code</directory>
            </fileset>
          </filesets>
        </configuration>
    </execution>

目录位置 - 提供自动生成的准确目录位置 类。

您需要在您需要删除自动生成的 xml beans 文件的所有子项目中进行配置。 如果您有所有子项目的父 pom,请在该 pom.xml 文件中进行配置。