如何让jenkins使用已签出的代码库?

如何让jenkins使用已签出的代码库?,jenkins,Jenkins,我刚开始学习Jenkins 1.487,希望将Jenkins集成到我的Ant项目中。但是在配置它时,我找不到任何方法让Jenkins重用已经签出的代码库,而不是下载相对于其工作区根的新副本。有办法吗 我试图手动指定一个自定义工作区(我的代码库已经在这里签出),然后单击“立即构建”。结果是它删除了我当前签出的代码 "Checking out a fresh workspace because there's no workspace at /home/daud/Work Cleaning loca

我刚开始学习Jenkins 1.487,希望将Jenkins集成到我的Ant项目中。但是在配置它时,我找不到任何方法让Jenkins重用已经签出的代码库,而不是下载相对于其工作区根的新副本。有办法吗

我试图手动指定一个自定义工作区(我的代码库已经在这里签出),然后单击“立即构建”。结果是它删除了我当前签出的代码

"Checking out a fresh workspace because there's no workspace at /home/daud/Work
Cleaning local Directory ."

连警告都没有

Jenkins和CI背后的想法是,它可以在新的代码库副本上工作。Jenkins完成的每个构建不应依赖于任何外部先决条件,并且应该是可复制的。

如果您确实希望从文件系统中某个地方的现有签出进行构建,那么不要使用Jenkins的“源代码管理”部分。将其保留为“无”

  • 直接进入“构建”部分
  • 单击“添加构建步骤”
  • 选择“调用Ant”
  • 单击高级
  • 在“构建文件”下,提供文件系统上ant构建文件的完整路径。您必须包含驱动器号(如果在Windows上)或前导/(如果在Linux上)才能从工作区断开(默认情况下,此路径是相对于工作区的)。或者如果需要,使用大量../../../

但正如其他人所说,这不是CI系统应该使用的方式

您可能希望尝试使用for Jenkins。它将允许您从一个作业中压缩工作区,并使用它为另一个作业创建工作区。我已将此方法用于需要对上一个作业中的工作进行操作的下游作业


如果您正在使用Git之类的工具进行源代码管理,并且希望避免第二次Git克隆(或SVN签出),这也很有帮助。此外,您可以限制用于重新创建工作区的zip文件的内容,例如,避免携带不必要的文件(例如
.Git
.SVN
目录)下游。

您所指的是“增量构建”。这取决于您使用的版本控制系统。使用git时,增量构建是默认的。另请参见。您使用的是什么VCS?我使用的是SVN。当我试图指定手动工作区(代码已经存在)时,它说“签出一个新的工作区,因为/home/daud/Work Cleaning local Directory中没有工作区。”并删除了我的旧代码:(我只是想避免再次下载整个项目..这有可能吗?一旦您下载整个项目一次,它将只查找更改(除非您更改“签出策略”)“每次都进行新签出)。签出的一次性成本非常值得。谢谢。我只想重用现有版本(每个服务器上都有特定于该服务器的本地更改,如果签出新版本,我将不得不再次进行这些本地更改)。我希望SVN更新发生(所以源代码管理不能没有)你真的必须澄清你的问题。你想要SVN更新吗?你想要Hudson执行SVN更新吗?如果没有,我已经给了你解决方案。如果你想要Hudson执行SVN更新,那么就这样设置。什么“本地更改”存在于每个不在SVN签出中的服务器上?这些是未版本化的文件吗?如果是,Hudson SVN update将忽略未版本化的文件,除非您告诉它使用“还原”或“新签出”。如果对其进行版本化和修改,则在从Hudson或其他地方执行SVN更新时,它们的行为将相同(它们将与最新的更改合并)一旦让Hudson进行初始签出,您就可以根据需要对Hudson工作区的签出文件夹执行SVN操作。它不会每次都删除它,除非您的SVN URL发生更改