Jenkins构建工作问题:构建作业时,pom应该以不同的方式复制到工作区

时间:2014-05-08 08:00:44

标签: maven jenkins

在Jenkins中构建基于maven的作业时,Jenkins希望将pom复制到Jenkins工作区..有时候 - 导致文件找不到异常(跟踪附加)和作业失败(虽然maven构建成功)。 模拟作业配置不会触发此副本,并以成功结束。 任何的想法? 在Jenkins 1.5.62以及1.5.40中, Maven 3.1.1

其他信息: 构建不是通过svn或任何其他修订控制系统触发的。 我发现工作区中的目录子结构不存在, 但在创建它之后,文件没有被复制。 我发现的唯一解决方案是在预期的位置手动复制pom.xml。 当然,Maven并没有失败,因为原始pom.xml的路径位于预期的位置。 所以我想我希望Jenkins做文件复制是错的。 有趣的部分:并非每个具有这种设置的工作(不在工作区中的pom)都会失败。

Stacktrace:

Archiving /home/workspaces/cpp/NXP/Utilities/target/Utilities-1.0-SNAPSHOT.jar to com.nxp.native.utilities/Utilities/1.0-20140508.155024-45/Utilities-1.0-20140508.155024-45.nar
/home/workspaces/4/NXP/Utilities/pom.xml is not inside /var/lib/jenkins/jobs/NXP C++ Development Linux 64bit Utilities/workspace/home/workspaces/cpp/NXP/Utilities/; will archive in a separate pass
/home/workspaces/4/NXP/Utilities/target/Utilities-1.0-SNAPSHOT.jar is not inside /var/lib/jenkins/jobs/NXP C++ Development Linux 64bit Utilities/workspace/home/workspaces/cpp/NXP/Utilities/; will archive in a separate pass
channel stopped

ERROR: Failed to parse POMs
java.io.FileNotFoundException: /var/lib/jenkins/jobs/NXP C++ Development Linux 64bit Utilities/workspace/home/workspaces/cpp/NXP/Utilities/pom.xml (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at hudson.FilePath.read(FilePath.java:1637)
    at jenkins.plugins.maveninfo.extractor.properties.PomPropertiesFinder.findProperties(PomPropertiesFinder.java:50)
    at jenkins.plugins.maveninfo.extractor.MavenInfoExtractor.extract(MavenInfoExtractor.java:58)
    at jenkins.plugins.maveninfo.extractor.MavenInfoEnvironment.tearDown(MavenInfoEnvironment.java:42)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:862)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:518)
    at hudson.model.Run.execute(Run.java:1704)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:519)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)

2 个答案:

答案 0 :(得分:0)

Maven失败,因为包含som ebasic informationen的项目根目录中没有pom.xml。你确定“/home/workspaces/4/NXP/Utilities/pom.xml”存在吗?

所以这可能是失败的原因......

但是:你想让模拟作业触发这个丢失的pom吗? 这个类似的工作是否属于它自己的pom?

答案 1 :(得分:0)

这通常在POM文件格式不正确时发生。 一些maven任务即使在没有形成pom的情况下也会被执行,而有些则在没有正确错误消息的情况下抱怨。 我有同样的问题,最后通过确保POM.xml格式良好来解决它。 一个非常常见的问题可能是:

$(function(){

    function boxtoRight(){
        $("#box").animate({marginLeft: 510 },3000,'linear',boxtoLeft);
    }
    function boxtoLeft(){
        $("#box").animate({marginLeft: 0},3000,'linear',boxtoRight);
    }
    boxtoRight();


    $(document).keydown(function(e){
        if(e.keyCode == 32){
            $("#box").css({"background":"green",
                           "bottom":"70px"
            });
        }
    });
    $(document).keyup(function(e){ 
        if(e.keyCode == 32){
            $("#box").css({"background":"red",
                           "bottom":"0px"
            });
         }
     });
});

请记住这样一个带有额外封闭项目的POM文件将通过eclipse成功运行,但在作为Maven项目的一部分运行Jenkins时会抱怨