我正在使用maven运行以下声纳命令:
mvn clean compile sonar:sonar
我想跑步:
mvn sonar:sonar
(即让声纳任务触发清理和编译步骤)
有没有办法在maven中表达这种依赖?
答案 0 :(得分:0)
快速回答:否 - 不是通过声明依赖关系,也不是让插件负责生命周期及其在插件目标之前运行的阶段。
通过mvn clean compile sonar:sonar
,您指示Maven首先运行整个清洁生命周期及其所有阶段 - 然后继续使用默认生命周期到阶段compile
,最后调用目标{{1}插件sonar
- 我个人认为命令相对来说是正在发生的事情,并且不能再进一步简化(在后台执行相同阶段/目标的较短命令的实际好处是什么? ?)。
然而,您可以将插件绑定到某些构建阶段,以便在运行阶段(比如默认生命周期中阶段sonar
之后的阶段process-classes
)时,插件的目标将自动执行。
这将抽象显示调用compile
的需要,并允许例如只调用sonar:sonar
并在默认生命周期的mvn clean process-classes
阶段执行sonar:sonar
。
现在回到你的问题,人们通常可以问一下,Maven插件是否可以控制生命周期和阶段,并在其自己的目标之前执行,这与我所知道的“标准Maven技术”无法实现(I但是,如果你编写自己的插件,不知道可能性。