我目前正在创建一个带有所有必要配置的父POM,作为我所有个人项目的基础。最终的目标是通过继承父POM来拥有较小的子项目(=配置很少),并更容易地引导项目。
但我面临着插件需要外部文件进行配置的问题(如
maven-assembly-plugin
,在下面的示例中显示)。我只希望有一个外部文件(用于
maven汇编插件
)
在所有子项目中共享
,而不是在所有子项目中重新定义同一文件。
这里有一个完整的例子。
以身作则
我的父母是波姆(
my-group-id:parent:1.0.0:pom
),定义的配置
maven汇编插件
,详情如下:
<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>
如果我希望所有子项目都具有
在父项目中定义的配置中,我必须编写以下内容(子项目的示例
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
文件夹。
)似乎是解决方案,但我不知道如何在所有子项目中共享它。不管怎样,我不想有一个
bin.xml
每个孩子的项目。
这个问题可以扩展,并且不仅涉及
maven汇编插件
,因为还有其他可配置外部文件的插件(
docker-maven-plugin
Dockerfile
可以提供)。但至少,找到解决问题的办法
maven汇编插件
具体案例将非常有用!