Xml Maven构建段重复数据消除
我们的应用程序由许多由Maven构建的微服务组成。他们的服务结构如下:Xml Maven构建段重复数据消除,xml,maven,build,Xml,Maven,Build,我们的应用程序由许多由Maven构建的微服务组成。他们的服务结构如下: 服务 服务核心(服务器端) xml(服务核心pom文件) 服务客户端(客户端) xml(服务客户端pom文件) pom.xml(用于继承依赖项和基本属性) core和client具有不同的堆栈,因此它们的构建部分不匹配。但所有服务中所有核心和客户端的构建部分都是相同的 我们希望将这些构建部分重复数据消除到一个外部文件中(因此,当我们更改某些内容时,不需要在许多地方对其进行修改) 我们已经考虑了一些继承,但这
- 服务
(服务器端)服务核心
- xml(服务核心pom文件)
(客户端)服务客户端
- xml(服务客户端pom文件)
(用于继承依赖项和基本属性)pom.xml
core
和client
具有不同的堆栈,因此它们的构建部分不匹配。但所有服务中所有核心和客户端的构建部分都是相同的
我们希望将这些构建部分重复数据消除到一个外部文件中(因此,当我们更改某些内容时,不需要在许多地方对其进行修改)
我们已经考虑了一些继承,但这并不容易,因为
core
和client
不共享相同的构建过程,我们还使用Maven模块作为一个整体构建单个服务(父模块+所有子模块)
我们尝试过的另一种可能性是XML实体+导入,但在Maven()中故意禁止实体
还有其他可能性吗
提前谢谢 Maven支持:
配置文件是使用POM本身中可用的元素子集(加上一个额外部分)指定的,并以各种方式触发。它们在构建时修改POM,并用于补充集合中,为一组目标环境提供等效但不同的参数
在您的情况下,可能有一个服务
项目,其中包含POM中核心
和客户
项目的概要文件声明:
+- services
+- service_1
+- core
+- client
+- service_2_
+- core
+- client
+- service_3
+- ...
+- ...
更新
没有任何个人资料:
+- services ... just aggregators here and below, build here and below only
+- service_1_builder
+- core
+- client
+- service_2_builder
+- core
+- client
+- service_3_builder
+- ...
+- ...
+- main ... parent containing declarations common to all descendant projects
+- cores ... parent containing declarations for core builds
+- service_1
+- service_2
+- service_3
+- ...
+- clients ... parent containing declarations for client builds
+- service_1
+- service_2
+- service_3
+- ...
POM服务
包含:
<modules>
<module>service_1_builder</module>
<module>service_2_builder</module>
<module>service_3_builder</module>
<module>...</module>
</modules>
服务/service\n\u builder/core的POM包含:
<modules>
<module>core</module>
<module>client</module>
</modules>
<modules>
<module>../../../main/cores/service_n</module>
</modules>
<modules>
<module>../../../main/clients/service_n</module>
</modules>
服务核心
和服务客户端
之间的区别在哪里?这两个jar是jar还是war?您能给出它们的配置示例吗?构建部分有什么特别的区别?一个是普通jar,一个是可执行jar(Spring boot),有不同的插件(对于文档,pmd的不同设置…)PMD插件正在检查源代码,因此无需改变…PMD插件的设置可以在pluginManagement中定义…这将使整个项目(从父级)无法构建,因为这将迫使我同时设置两个配置文件。@malejpavouk你是对的。请参阅我答案的更新。