有没有办法简化声纳的这个maven命令?

Is there a way to simplify this maven command for sonar?

我正在运行使用 Maven 执行以下声纳命令:

mvn clean compile sonar:sonar

我只想 运行:

mvn sonar:sonar

(即让声纳任务触发清理和编译步骤)

有没有办法将其表达为 Maven 中的依赖项?

快速回答:不 - 不是通过声明依赖关系,也不是让插件负责生命周期及其阶段 运行 在插件目标之前。

通过 mvn clean compile sonar:sonar,您指示 Maven 首先 运行 整个清理生命周期及其所有阶段 - 然后继续默认生命周期到阶段 compile,最后调用插件 sonar 的目标 sonar - 我个人认为该命令对于正在发生的事情来说相对较短,不能进一步简化(执行相同命令的较短命令的实际好处是什么背景中的阶段/目标?)。

然而,您可以将插件绑定到某些构建阶段,这样如果阶段是 运行(比如在默认生命周期中阶段 compile 之后的阶段 process-classes)插件的目标将自动执行。

这将抽象出显式调用 sonar:sonar 的需要,并允许例如仅调用 mvn clean process-classes 并在默认的 process-classes 阶段执行 sonar:sonar beeing生命周期。

现在回到你的问题,人们通常会问 Maven 插件是否可以控制在其自己的目标之前执行的生命周期和阶段,据我所知这是不可能的 "standard Maven techniques" (但是我不知道如果您编写自己的插件的可能性)。