反应堆项目中不再存在的Maven模块在Jenkins构建报告中显示为;没有';“t运行”;
我有一个多模块maven项目,其中包含嵌套的一些其他反应堆子模块。因此,我有一个3级的模块层次结构 在过去,我重构了层次结构,将一些嵌套模块从一个模块移动到另一个模块。我还修改了一些模块的名称 在Jenkins上,旧模块(现在不存在)在构建报告中显示为“未运行”。当我在本地进行maven安装时,这些模块不会出现在reactor摘要中 这种行为是意料之中的吗? 我的意思是,詹金斯有没有让反应堆运行人员记住旧子模块的设置反应堆项目中不再存在的Maven模块在Jenkins构建报告中显示为;没有';“t运行”;,maven,jenkins,Maven,Jenkins,我有一个多模块maven项目,其中包含嵌套的一些其他反应堆子模块。因此,我有一个3级的模块层次结构 在过去,我重构了层次结构,将一些嵌套模块从一个模块移动到另一个模块。我还修改了一些模块的名称 在Jenkins上,旧模块(现在不存在)在构建报告中显示为“未运行”。当我在本地进行maven安装时,这些模块不会出现在reactor摘要中 这种行为是意料之中的吗? 我的意思是,詹金斯有没有让反应堆运行人员记住旧子模块的设置 “在构建开始之前删除工作区”选项已启用。您是否尝试了项目页面上配置和模块之间可
“在构建开始之前删除工作区”选项已启用。您是否尝试了项目页面上配置和模块之间可用的删除所有禁用模块的操作?如果由于某种原因,删除所有禁用模块不可用,然后您可以在managejenkins->脚本控制台中运行此Groovy脚本(
https:///script
)。基于并改进了这里关于堆栈溢出的反馈
import jenkins.model.Jenkins
import hudson.maven.MavenModuleSet
import hudson.model.Result
Jenkins.instance
.getAllItems(Job.class)
.findAll({ job -> job instanceof MavenModuleSet })
.each {
job ->
build = job.getLastBuild()
if (build && build.getResult() == Result.SUCCESS) {
println("==> Processing job " + job.name)
build.getModuleBuilds().each {
module, build ->
if (build.isEmpty()) {
//module.delete()
println(" --> Deleted module " + module.name)
}
}
} else {
println("Warning: Skipped job " + job.name + " because its last build failed.")
}
}
return null
如何使用:
module.delete()
副作用:任何存档的构建在过去仍然拥有该模块,将不再拥有已删除的模块。在我的用例中,这是可以接受的。这里有一个脚本,它将遍历所有maven作业并删除上次成功构建时未运行的所有模块
import jenkins.model.Jenkins
import hudson.maven.MavenModuleSet
import hudson.model.Result
Jenkins.instance.items.findAll({job -> job instanceof MavenModuleSet}).each {
job ->
build = job.getLastBuild()
if(build && build.getResult() == Result.SUCCESS) {
println("==> Processing job " + job.name)
build.getModuleBuilds().each {
module, build ->
if(build.isEmpty()) {
//module.delete()
println(" --> Deleted module " + module.name)
}
}
} else {
println("Warning: Skipped job " + job.name + " because its last build failed.")
}
}
return null
如何使用:
- 运行它而不进行编辑
- 浏览更改列表以检查不需要的删除
- 取消对module.delete()的注释,然后再次运行它