我正在尝试开发基于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}}生成的文件。
答案 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文件中进行配置。