首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除LInux机器中的Workspace Post Maven执行

删除LInux机器中的Workspace Post Maven执行
EN

Stack Overflow用户
提问于 2015-11-07 10:58:07
回答 2查看 775关注 0票数 1

我们的框架工作是以这样一种方式开发的:整个项目将被复制(从Perforce)到Linux机器(远程VM机器),并在那里执行一个Maven命令来运行测试用例。一切都是经过詹金斯的。

在执行测试用例之后,我使用执行shell post Maven构建步骤删除工作区。正如预期的那样,它正在删除工作区。删除工作区后的问题:不确定为什么要再次解析POM?通过成功执行测试用例,这会导致作业失败。

以下是我如何配置以删除工作区:

在运行作业时,它将按预期删除工作区,但解析post删除。显然,POM将不存在,因为它删除了工作区。

代码语言:javascript
复制
INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:11:26.091s
[INFO] Finished at: Mon Nov 02 22:50:42 PST 2015
[INFO] Final Memory: 133M/489M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
Waiting for Jenkins to finish collecting data
channel stopped
[testjob] $ /bin/sh -xe /tmp/hudson464395510348605766.sh
+ echo testjob
testjob
+ delworkspace=/opt/hudson/workspace/testjob
+ rm -rf /opt/hudson/workspace/testjob
ERROR: Failed to parse POMs
java.io.IOException: java.io.FileNotFoundException: /opt/hudson/workspace/testjob/pom.xml (No such file or directory)
    at hudson.remoting.FastPipedInputStream.read(FastPipedInputStream.java:169)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Notifying upstream projects of job completion
Finished: FAILURE 

我在配置上有遗漏吗?我做了所有的家庭作业,但没有运气。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-07 17:58:51

我会用工作区清理插件

此插件在生成之前或构建完成并保存工件时删除工作区。

而不是通过自己的脚本删除工作区。

票数 0
EN

Stack Overflow用户

发布于 2015-11-07 19:57:32

您可以很容易地使用参数化触发插件完成这一任务。

  • 您应该做的是:创建一个新作业(例如,名为cleanWS),当构建完成时,它将触发cleanWS &立即删除作业的工作区。
  • 转到testjob配置->,从Build部分选择Execute shell,->复制并粘贴echo delworkspace=/opt/hudson/workspace/$JOB_NAME >> file.properties
  • Post-build Actions部分: 在生成完成时,在项目项目上添加->触发器参数化生成以生成->触发器(总是触发器),从属性文件中添加参数->参数,使用文件-> file.properties中的属性。
  • save.
  • 然后转到您的cleanWS配置->,从Build部分选择Execute shell、->复制和粘贴rm -rf $delworkspace

注:使用这个cleanWS作业,您可以删除所有作业的工作区。

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

https://stackoverflow.com/questions/33581918

复制
相关文章

相似问题

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