【问题标题】:jenkins (or groovy) using pom.xml from previous executionjenkins(或 groovy)使用之前执行的 pom.xml
【发布时间】:2015-08-25 12:58:28
【问题描述】:

我有一个 Jenkins 工作,它接收到一个 ma​​ven 项目 的 svn url 作为参数。它执行 groovy 脚本 和一些步骤,如 mvn 包、mvn 部署……但我发现了一个问题,当我第一次启动作业时一切都很好,但是当我再次执行它时时间,我更改了输入项目,Jenkins 或 groovy 似乎正在使用以前执行的 pom.xml,我的意思是,当我尝试在 groovy 中从项目的 pom 中检索 artifactId 时,我总是得到 artifactId在第一个项目中,无论我启动作业多少次,或者我确实清除了当前工作区,它都会返回第一个 pom 值。

我用来读取 pom.xml 值的常规代码是:

def thr = Thread.currentThread() //This line may be the problem?
def currentBuild = thr?.executable
def pomMAIN = currentBuild.getParent().getModules().toArray().size()-1
def mavenVer = currentBuild.getParent().getModules().toArray()[pomMAIN].getVersion()
def mavenArtifactId = currentBuild.getParent().getModules().toArray()[pomMAIN].getArtifactId()
def mavenGroupId = currentBuild.getParent().getModules().toArray()[pomMAIN].getGroupId()

我已尝试删除并再次创建作业,但行为始终相同,它仅在第一次执行期间获得正确的 pom。

有没有办法清理作业/常规数据?

编辑 2015 年 6 月 7 日:

我的工作使用 Source Code Management:

部分检索 svn 代码

签出策略应该足以确保代码已更新,但我还检查了作业工作区以确保 pom 是正确的。

【问题讨论】:

  • 你有没有试过告诉詹金斯在工作区开始执行之前清理它?您可能需要安装 wiki.jenkins-ci.org/display/JENKINS/Workspace+Cleanup+Plugin 来帮助解决此问题
  • 我已经尝试手动清理工作区但没有用,但我会尝试使用该插件,希望对您有所帮助
  • 插件没有解决问题
  • 如何从 svn 存储库中检索 maven 项目?您确定您的文件已更新吗?
  • 我已经用这个信息更新了这个问题,但我认为这不是问题,因为我检查了工作区并找到了正确的 pom,但是 groovy 仍然从以前的构建中读取值。我怀疑thr = Thread.currentThread() 以某种方式导致错误,因为线程没有被更新,但我不知道如何清理/更新它

标签: multithreading groovy jenkins pom.xml


【解决方案1】:

最后我找到了解决方案,现在我在工作开始时有一个 groovy 脚本来刷新它:

def jobNameToRefresh = "nameOfMyJob";
def hudson = hudson.model.Hudson.instance;

for(job in hudson.model.Hudson.instance.items) {   
    if (job.name == jobNameToRefresh) {
        def configXMLFile = job.getConfigFile();
        def file = configXMLFile.getFile();
        InputStream is = new FileInputStream(file);
        job.updateByXml(new StreamSource(is));
        job.save();
        return true        
    }      
} 

并且,在工作结束时,我使用一个基本上可以执行的 shell 脚本删除文件夹“modules”:

cd..
rm -r modules

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多