java - 在 Parent Pom 中定义的 Maven Plugin 有时不会在 Child 没有声明的情况下触发
问题描述
在我的父 POM 中,我定义了一个带有 phase prepare-package
inside的依赖插件<pluginManagement><plugins>
。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${version.plugin.resources}</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>${version.plugin.dependency}</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${classpathDir}</outputDirectory>
<includeScope>runtime</includeScope>
<excludeClassifiers>${dependencyClassifiers}</excludeClassifiers>
</configuration>
</execution>
</executions>
</plugin>
在我的子 POM 中,我没有指定任何依赖插件。它没有被执行。我必须把它放进<plugins>
去让它触发:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
我使用的 Maven 目标是clean install
.
我的问题是,为什么我必须maven-dependency-plugin
在我的子 POM 中再次明确指定?
- 即使我没有在我的 POM 中重新声明它们,其他插件(如
maven-jar-plugin
、maven-resource-plugin
、 )仍在运行。maven-compiler-plugin
为什么不一致? - 依赖项的阶段被配置为
prepare-package
,它package
在 Maven生命周期中的阶段之前,因此我认为它应该“按照放弃的顺序执行到指定的点”。但不是,为什么呢?
提前感谢任何能够帮助我查询的人!:)
解决方案
推荐阅读
- python - 如何在简单的 pythhon 3.8 程序中解决问题 ord utf_8?
- c# - 部署时多次调用 Azure 服务总线队列触发器函数
- sql - 带有 extractAllTableData 标志的 dacpac 和 bacpac 有什么区别?
- r - 使用 dplyr 逐行计算观察次数
- android - 如何在屏幕上显示与方位角相关的精灵
- angular - 如何将文本框中输入的文本格式化为日期值
- r - 在 RStudio 中设置 rnorm 函数的限制
- sql - 根据 hive 中的列值获取每种可能性的总和 - 聚合表
- c++ - 在 C++ 中计算任何结构的简单方法
- typescript - react-select 中 menuList 样式键的状态类型是什么?