有没有办法简化声纳的这个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" (但是我不知道如果您编写自己的插件的可能性)。
我正在运行使用 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" (但是我不知道如果您编写自己的插件的可能性)。