gpt4 book ai didi

linux - 在 Linux 机器中删除工作区后 Maven 执行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:13 26 4
gpt4 key购买 nike

我们的框架工作的开发方式是将整个项目(从 Perforce)复制到 Linux 机器(远程 VM 机器),然后执行 Maven 命令来运行测试用例。一切都通过 Jenkins 驱动。

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

这是我配置删除工作区的方式:

enter image description here

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

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

我是否遗漏了配置中的任何内容?我做了所有的作业,但没有运气。

最佳答案

您可以使用 Parameterized Trigger Plugin 来完成很容易。

  • 你应该做什么:创建一个新作业(比如,命名为 cleanWS),构建完成后,它将触发 cleanWS 并删除作业的工作空间立即。

  • 转到 testjob 配置 -> 从 Build 部分选择 Execute shell -> 复制并粘贴 echo delworkspace=/opt/hudson/workspace/$JOB_NAME >> file.properties

  • 构建后操作部分:

      Add post-build action -> Trigger parameterized build on the projects
    Projects to build -> <job name e.g. cleanWS>
    Trigger when build is -> Complete (always trigger)
    Add Parameters -> Parameters from properties file
    Use properties from file -> file.properties
  • 保存

  • 然后去你的 cleanWS 配置 -> 从 Build 部分选择 Execute shell -> 复制并粘贴 rm - rf $delworkspace.

注意使用此 cleanWS 作业,您可以删除所有作业的工作区。

关于linux - 在 Linux 机器中删除工作区后 Maven 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com