Jenkins 签出SVN指定版本号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins 签出SVN指定版本号相关的知识,希望对你有一定的参考价值。

今天去Jenkins 上配置SVN,想签出指定的版本号进行打包,该如何去做呢?
比如现在版本号: 5000 ,我想签出版本号:4988打包,该如何去做?
有一个方法就是在构建的项目里边 SVN 的URL后边添加 @4988,但是每次都得改,挺麻烦的,这个该怎么去做?

参考技术A 一种办法是创建一个变量,这个变量输入的时候要输入@4988,然后把这个变量拼接到你说的这个url后面,录入的时候要不输入这个变量,则以最新的svn构建,要输入则必须输入@4988

将 maven 项目集成到 svn 版本的 jenkins 中

【中文标题】将 maven 项目集成到 svn 版本的 jenkins 中【英文标题】:Integrate maven project into jenkins which is versioned with svn 【发布时间】:2014-02-10 21:36:03 【问题描述】:

我刚刚安装了 jenkins,并希望在我的项目中用作基于 linux 的服务器上的构建工具。我以前对詹金斯没有任何经验。到目前为止,我管理的是创建一个简单的 maven 项目,从 svn 签出我的源代码并构建它。 jenkins 将我的项目检出到它的默认工作区中,我想要自定义并将源代码管理移到 pom.xml 中。

我想将 svn 存储库 url 和 checkout 目录放入 pom.xml 中,这应该只与我的服务器(linux 机器)相关。在所有其他环境中,我想手动管理结帐和构建。 (或来自 Eclipse)我可以为此使用 Maven 配置文件吗?如果您从头顶知道,请给我一个示例,使用什么 maven 插件,如何对其进行分析,以及如何强制詹金斯使用该配置文件(以及所有环境都忽略 pom.xml 的这一部分)。 xml)

我对这些东西真的很陌生,因此我非常感谢任何帮助。谢谢大家!

【问题讨论】:

【参考方案1】:

你做错了。正好相反。

    您的项目应始终使用mvn install 构建。如果您没有充分的理由使用个人资料,请不要使用。 每个开发人员都可以通过从 svn 签出项目并运行 mvn install 来构建项目。他/她应该能够使用他/她选择的目录和 IDE。 对于 Eclipse/NetBeans/IntelliJ,有一些插件只导入 Maven 项目。 在 Jenkins 中创建一个 Maven 作业(我猜 Mavne 插件与标准包一起分发)。对于一个工作,你设置一个 SVN 源 URL 并让他运行mvn install。在 CI 服务器上设置mvn clean install 是一个很好的做法。

为什么需要更改存储库 url 和目录?它不是 POM 的一部分。

【讨论】:

我更改结帐目录的原因是,在基于 linux 的服务器上,我想使用与基于 Windows 的开发环境完全不同的路径。这就是我可能使用配置文件的原因。在詹金斯中,如果我设置 SVN 源 URL 和本地模块目录,我可以只设置工作区根目录的相对路径。 (指定签出此模块的本地目录(相对于工作区根目录)。-来自詹金斯)我真的很想在 /projects/..../ 中有签出的项目 为什么需要项目知道工作区根目录?您不应访问项目目录之外的任何内容。任何外部的东西都应该是一个依赖项。当然,您可以使用配置文件并设置配置文件动作来检查操作系统的类型(Win/Linux),但这绝对是错误的方式。如果源目录在 pom.xml 中变得重要,则意味着您做错了。

以上是关于Jenkins 签出SVN指定版本号的主要内容,如果未能解决你的问题,请参考以下文章

将 maven 项目集成到 svn 版本的 jenkins 中

Jenkins根据svn版本号进行构建

如何查询当前 Jenkins LTS 版本号?

svn如何回滚到之前版本

mac 10.15.5版本下 svn 命令的使用

持续集成jenkins工具介绍