【问题标题】:Deploy Artifact From Jenkins to Archiva with NAnt使用 NAnt 将工件从 Jenkins 部署到 Archiva
【发布时间】:2013-02-07 05:38:09
【问题描述】:

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

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

所以,这就是我的理解:

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

以下是我不明白的地方:

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

这是我正在使用的:

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

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

  • 马文
  • 常春藤

【问题讨论】:

    标签: jenkins continuous-integration nant archiva


    【解决方案1】:

    设置一个单独的 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 用于由微软电话部门创建的 Web 应用程序。
    • 工件 ID 是特定工件的名称。
    • 版本是版本字符串的正常形式 - 1.0a 或 2.0-asl 或 3.2.1。
    • 分类器的使用方式与我们使用文件扩展名 - zip、jar 的方式类似。

    这是解释的简短版本。 Google 是您的朋友。

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

    【讨论】:

    • 查看顶部添加的注释。
    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    相关资源
    最近更新 更多