使用NAnt从Jenkins部署神器到Archiva

时间:2013-02-21 18:48:29

标签: jenkins continuous-integration nant archiva

我无疑是整个持续整合理念的新手。因此,我一直在网上寻找一种方法来获取我的ASP.NET项目,通过Jenkins提供它,以便在Linux机器上使用NAnt和mono进行自动构建,并最终将工件部署到Apache Archiva中进行检索稍后安装,等等。

我的问题是,我不知道如何整合从Jenkins到Archiva的神器。

所以,这就是我的理解:

  • Archiva可用于存储任何类型的工件。 .zip个文件(我想要使用的文件),.jar文件等
  • Jenkins可以使用NAnt构建源代码,将Mono调用到我的.NET 4.0项目
  • Jenkins还可以将文件压缩成合适的工件

这是我不明白的地方:

  • 如何在Jenkins构建它时将.zip文件(工件)从存储位置获取到Archiva存储库?

以下是我正在使用的内容:

  • Jenkins(1.502)服务器和Archiva(1.3.4)服务器位于同一台Ubuntu 12.04计算机上
  • NAnt(0.92)构建脚本
  • Mono(2.10)

我对此一无所知(但可能有所帮助?):

  • 的Maven
  • 常春藤

2 个答案:

答案 0 :(得分:3)

设置一个单独的Jenkins"任务"使用Maven进行部署。

注意:您不需要太了解Maven就可以完成这项工作。您必须安装它。您必须按照下面的页面所述对其进行配置,并且您需要使用该信息从命令行调用它。 (如果您想了解更多信息,可以使用备用建议。)

使用此页面中的信息设置settings.xml:

http://archiva.apache.org/docs/1.4-M2/userguide/deploy.html

同一页面显示了如何从命令行运行Maven。要使用它,您将创建一个运行shell脚本的Jenkins任务,并直接从构建任务创建它的位置进行部署。然后,您可以手动运行部署,也可以让Jenkins构建任务在完成时运行部署任务,而不会出现错误。

您可能不熟悉的一件事是Archiva / Maven的每个文件的坐标系统。

每个工件都有一个组,工件ID和版本。如果你愿意,可以有分类器等。

  • 该组通常是公司的域名向后加上内部分类指标 - com.microsoft.phone.web,用于由microsoft的电话部门创建的Web应用程序。
  • 工件ID是特定工件的名称。
  • 版本是版本字符串的正常形式 - 1.0a或2.0-asl或3.2.1。
  • 分类器的使用方式类似于我们使用文件扩展名的方式 - zip,jar。

这是此解释的简短版本。谷歌是你的朋友。

您也可以使用Maven任务执行此操作。将需要有关pom.xml文件的Archiva页面上的信息,但您必须使用Google" Maven deploy"并阅读如何为您的特定情况做这件事。当工件位于本地Maven仓库(在构建机器上)并且repo具有您需要的特定文件和文件夹结构时,默认情况下会部署。这就是Maven在创建和安装工件时安排工件的方式。

答案 1 :(得分:1)

从Jenkins为非maven构建简化部署到Archiva的可能性可以写一个类似于https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin的插件(注意:我可以帮助你,但没有时间ATM做任何事情:-))。 我不太了解NAnt但是对于ant,我们构建了一些maven ant任务来部署工件,请参阅http://maven.apache.org/ant-tasks/