1

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

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

所有其他sub-projects还提供 xml 模式。但是,这些子项目导入/引用base-xml-schemas以使用和扩展由base-schemas.

即使我的sub-projects 依赖base-projectxmlbeans 插件也需要base-xml-schemas存在schemaDirectory才能使用。作为暗示,我所有的子项目现在都带有由于base-xml-schemas.

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

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

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

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

4

1 回答 1

0

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

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

参考链接 - 使用 pom 文件从目标目录中删除或删除资源文件

配置将是这样的:

      <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 文件中进行配置。

于 2015-01-25T08:06:55.527 回答