代码之家  ›  专栏  ›  技术社区  ›  brazilianldsjaguar

使用NAnt将工件从Jenkins部署到Archiva

  •  1
  • brazilianldsjaguar  · 技术社区  · 13 年前

    无可否认,我对整个持续集成的想法是陌生的。因此,我一直在网上搜索,寻找一种方法来获取我的ASP.NET项目,通过Jenkins在Linux上使用NAnt和mono进行自动构建,并最终将工件部署到Apache Archiva中,以便稍后检索以进行安装,等等。

    我的问题是,我不知道如何将Jenkins的工件移交给Archiva。

    所以,我的理解是:

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

    以下是我不明白的地方:

    • 我怎么能拿到 拉链 文件(工件),从Jenkins构建它时存储它的地方,到Archiva存储库?

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

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

    我什么都不知道(但可能有帮助?):

    • 专家
    • 常春藤
    2 回复  |  直到 13 年前
        1
  •  3
  •   Lee Meador    13 年前

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

    注意:您不需要对Maven了解太多就可以实现这一点。你必须安装它。你必须按照下面页面上的描述进行配置,并且你需要使用这些信息从命令行调用它。(如果你想了解更多,你可以使用交替的注释。)

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

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

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

    有一件事你可能不熟悉,那就是Archiva/Maven的每个文件的坐标系统。

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

    • 该组通常是公司的域名反向加上内部分类指标——微软电话部门创建的网络应用程序com.microsoft.phone.web。
    • 工件id是一个特定工件的名称。
    • 该版本是版本字符串的正常形式-1.0a或2.0-asl或3.2.1。
    • 分类器的使用方式与我们使用文件扩展名的方式类似——zip、jar。

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

    您也可以使用Maven任务来完成此任务。需要Archiva页面上关于pom.xml文件的信息,但您必须在谷歌上搜索“Maven deploy”,并阅读如何针对您的特定情况进行部署。当工件位于本地Maven repo(在构建机器上)中,并且该repo具有您需要的特定文件和文件夹结构时,就会部署默认情况。这就是Maven在创建和“安装”工件时排列工件的方式。

        2
  •  1
  •   Olivier Lamy    13 年前

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