我正在使用下面的Jenkinsfile来创建maven构建,并在之后将其存档。
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文件夹
发布于 2020-08-29 17:33:42
基于@dev-joshi的编辑,
存档不是要清理工作区,而是要清理builds//
/文件夹中的原始com文件夹
我猜您指的是maven编译步骤的“归档工件”编译后步骤的目标位置,而不是./target目录。
答案就在“X Discard old build”选项中
“保留工件的最大构建数” [ 1 ]
如果不为空,则只有此数量的构建会保留其工件
将其设置为[ 1 ]
应该可以实现您的目标。
如果使用管道,则this S/O answer和syntax docs提供以下语法选项:
options {
buildDiscarder(logRotator(artifactNumToKeepStr: '1'))
}
您必须为要清理的现有工件执行另一个构建。
我还建议您设置存档选项:
仅当构建成功时才能"[ X ]
存档项目“
你不会想要用一个部分完成的构建来吹走成功的工件。
注意too:mvn install
将按照标准的maven规则将生成的工件复制到本地存储库。这通常在本地工作区之外(除非选择x私有存储库)。然后可以运行mvn clean
来删除中间构件(*.class
和*.jar
等)。从本地工作区返回到预构建状态。您可以使用的“Delete workspace"构建后步骤和”Pattern files to be Delete“来达到类似的效果(如果您知道自己在做什么,或者简单地完全删除工作区。
发布于 2020-08-28 15:29:18
您需要安装工作空间清理插件并添加到post部分
post {
success {
archiveArtifacts 'target/*.jar'
cleanWs ()
}
failure {
cleanWs ()
}
}
您可以将cleanWs
添加到always
块中,但在本例中,always
总是首先执行。
https://stackoverflow.com/questions/63628560
复制相似问题