【问题标题】:Maven Xmlbeans Plugin - Generate & Retain files for specified schemasMaven Xmlbeans 插件 - 为指定模式生成和保留文件
【发布时间】:2015-03-23 11:35:27
【问题描述】:

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

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

所有其他 sub-projects 也提供 xml 模式。但是,这些子项目导入/引用base-xml-schemas 以使用和扩展base-schemas 定义的元素/类型。

即使我的sub-projects 依赖 base-project,xmlbeans 插件也需要base-xml-schemas 出现在schemaDirectory 中才能使用。作为暗示,我所有的子项目现在都带有由于base-xml-schemas而生成/编译的重复内容。

我希望我的 sub-projects 在其 jar 中仅包含那些特定于子项目的架构和内容,因为我的 base-project 将可用于我的 Jboss 中的所有应用程序,并且类型可以在运行时解析。

已经了解 xmlbean 需要所有引用的模式来生成代码,现在我想删除所有 xmlbean 生成的代码,因为存在base-xml-schema 并保留与sub-project 特定模式相关的文件。

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

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

【问题讨论】:

    标签: maven maven-3 xmlbeans xmlbeans-maven-plugin


    【解决方案1】:

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

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

    参考链接 - 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 文件的所有子项目中进行配置。 如果您的所有子项目都有任何 parent-pom,请在该 pom.xml 文件中进行配置。

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 2017-10-04
      • 2014-07-27
      • 2011-02-06
      • 1970-01-01
      • 2017-07-18
      相关资源
      最近更新 更多