maven - Parent POM:跨子项目共享通用配置文件
问题描述
我目前正在创建一个包含所有必要配置的父 POM,作为我所有个人项目的基础。最终目标是拥有小的子项目(= 几乎没有配置)并通过继承父 POM 更轻松地引导项目。
但是我遇到了插件需要外部文件进行配置的问题(maven-assembly-plugin
如下所示,在我的示例中)。我希望在所有子项目中共享maven-assembly-plugin
一个外部文件(的描述符文件),而不是在我的所有子项目中重新定义同一个文件。
这是一个完整的例子。
示例maven-assembly-plugin
我的父 POM ( my-group-id:parent:1.0.0:pom
) 定义了 的配置maven-assembly-plugin
,如下所示:
<project>
<groupId>my-group-id</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>create-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/bin.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</pluginManagement>
</build>
</project>
如果我希望所有子项目都具有maven-assembly-plugin
在父项目中定义的配置,我必须编写以下内容(子项目的示例child1
):
<project>
<parent>
<groupId>my-group-id</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>child1</artifactId>
<version>0.0.1</version>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
但是,正如我在介绍中所说:使用该配置,对于每个孩子,我必须src/assembly/bin.xml
在其自己的项目中创建一个描述符文件 ()。
此外,事实证明我所有的子项目都有相同的bin.xml
文件。我会为您保存内容,但对于信息,打包始终是一个.tar.gz
存档,外部库分隔在一个lib
文件夹中。
我只想继承父 POM,而不用担心我的子项目中的组装方式。共享描述符文件 ( bin.xml
) 似乎是解决方案,但我看不到如何在所有子项目中共享它。无论如何,我不想有一个bin.xml
每个孩子的项目。
这个问题可以扩展并且不仅解决 的配置maven-assembly-plugin
,因为还有其他插件可配置外部文件(docker-maven-plugin
例如,Dockerfile
可以提供 a 的地方)。但至少,为maven-assembly-plugin
特定案例找到解决方案会非常有帮助!
解决方案
推荐阅读
- python - instancemethod'对象没有属性'return_value'
- windows - 什么是“ms-cxh-full://0.0.135.7”?
- javascript - 样式化 HTML5 日期
- android - 对通过 startActivity 创建的 AppCompatActivity 对象的引用
- mysql - SQL:两列的唯一索引,其中一的值不是默认值
- python - discord.py bot 使用 Pillow - ValueError:图像不匹配
- react-native - 访问世博会资产
- flutter - 从另一个小部件访问 Controller.isEmpty
- javascript - 从 Google Analytics Data API (GA4) 获取实时信息,例如 UsersBysource、EventCountByEventName 和 eventParamerts
- mongodb - 可以通过 upsert 做到这一点吗?