Maven Xmlbeans插件 - 生成&保留指定模式的文件

时间:2015-01-24 14:45:03

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

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

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

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

即使我的sub-projects 依赖于base-project上的,xmlbeans插件也需要base-xml-schemas中的schemaDirectory才能使用base-xml-schemas。因此,我的所有子项目现在都包含由sub-projects生成/编译的重复内容。

我希望我的base-project只包含那些特定于子项目的模式&他们的jar中的内容,因为我的base-xml-schema将可用于我的Jboss&这些类型可以在运行时解决。

了解到xmlbean需要所有引用的模式用于代码生成,现在我想删除由于sub-project的当前所有xmlbean生成的代码并保留与base-schema相关的文件具体的模式。

我手动完成了这个以及我的项目编译&运行时工作正常,因为我的maven有依赖&类在运行时可用。

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

1 个答案:

答案 0 :(得分:0)

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

您需要将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文件的所有子项目中进行配置。 如果所有子项目都有父pom,请在该pom.xml文件中进行配置。