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

Posted

技术标签:

【中文标题】将 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 中变得重要,则意味着您做错了。

以上是关于将 maven 项目集成到 svn 版本的 jenkins 中的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

jenkins+maven+svn 远程部署到weblogic 持续集成

linux下部署项目

Jenkins + svn + maven 构建持续集成环境搭建

Jenkins+Maven+SVN快速搭建持续集成环境(转)

Jenkins+Maven+SVN快速搭建持续集成环境(转)