首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在归档构建后删除原始jenkins构建

如何在归档构建后删除原始jenkins构建
EN

Stack Overflow用户
提问于 2020-08-28 14:26:18
回答 2查看 679关注 0票数 1

我正在使用下面的Jenkinsfile来创建maven构建,并在之后将其存档。

代码语言:javascript
运行
复制
pipeline {
agent any

stages {
    stage('Build') {
        steps {
            withMaven(maven: 'mvn installed') {
                sh "mvn clean package"
            }
        }
        post {
            success {
                archiveArtifacts 'target/*.jar'
            }
        }
    }
}

归档构建后,它将保存到目标文件夹,其中包含我想要使用的jar文件。但是,build文件夹还包含原始的com。包含相同jar的文件夹。有没有办法在存档后删除这个com文件夹,因为它只会占用我的服务器中我根本不使用的额外空间。

编辑:我不打算清理工作区,而是要清理builds//archive/文件夹中的原始com文件夹

EN

回答 2

Stack Overflow用户

发布于 2020-08-29 17:33:42

基于@dev-joshi的编辑,

存档不是要清理工作区,而是要清理builds//

/文件夹中的原始com文件夹

我猜您指的是maven编译步骤的“归档工件”编译后步骤的目标位置,而不是./target目录。

答案就在“X Discard old build”选项中

“保留工件的最大构建数” [ 1 ]

如果不为空,则只有此数量的构建会保留其工件

将其设置为[ 1 ]应该可以实现您的目标。

如果使用管道,则this S/O answersyntax docs提供以下语法选项:

代码语言:javascript
运行
复制
 options { 
    buildDiscarder(logRotator(artifactNumToKeepStr: '1')) 
 }

您必须为要清理的现有工件执行另一个构建。

我还建议您设置存档选项:

仅当构建成功时才能"[ X ] 存档项目

你不会想要用一个部分完成的构建来吹走成功的工件。

注意toomvn install将按照标准的maven规则将生成的工件复制到本地存储库。这通常在本地工作区之外(除非选择x私有存储库)。然后可以运行mvn clean来删除中间构件(*.class*.jar等)。从本地工作区返回到预构建状态。您可以使用的“Delete workspace"构建后步骤和”Pattern files to be Delete“来达到类似的效果(如果您知道自己在做什么,或者简单地完全删除工作区。

票数 1
EN

Stack Overflow用户

发布于 2020-08-28 15:29:18

您需要安装工作空间清理插件并添加到post部分

代码语言:javascript
运行
复制
post {
  success {
    archiveArtifacts 'target/*.jar'
    cleanWs ()
  }
  failure {
    cleanWs ()
  }
}

您可以将cleanWs添加到always块中,但在本例中,always总是首先执行。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63628560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档