【问题标题】:How to deploy locally already installed artifact with Maven如何使用 Maven 部署本地已安装的工件
【发布时间】:2013-03-07 21:01:21
【问题描述】:

故事

我知道,maven deploy 命令贯穿整个生命周期。我的问题,在我的情况下需要很多时间。让我解释一下:

  • 服务器和单一来源的 Eclipse RAP&RCP 客户端构建了一个应用程序
  • 通信由共享 API 项目定义,这些项目一起构建 与服务器一起使用,但 GUI 项目也需要
  • GUI 项目是由 Tycho 构建的,因此无法构建 它们都在一个构建中(在一个反应​​器中,编辑:因为 RCP 和 RAP 的 P2 工件不同)
  • 我使用多步骤 Jenkins 构建构建了一个版本。为了确保, 一切都很好,我首先对服务器进行全新安装,然后 GUI 变化一个一个,然后我部署它们,如果没有失败

问题

两次构建所有内容需要大量时间。是否有类似“请简单地部署所有构建的工件,因为它们从我的本地存储库到 POM 定义的存储库跳过整个生命周期” ?

【问题讨论】:

  • 听起来您不了解 maven 生命周期,因为如果您调用 mvn deploy,安装就是其中的一部分。所以先调用 mvn install 然后调用 mvn deploy 是没有意义的。
  • 我添加了一个小修改以使其更清晰。
  • 您是否在使用诸如 Artifactory 或 Nexus 之类的存储库管理器?
  • 我们使用的是免费版的 Nexus。
  • stackoverflow.com/a/16793217/337621查看我的其他问题和答案

标签: maven maven-3 tycho maven-deploy-plugin


【解决方案1】:

如果您已经拥有上一个版本的工件,您可以按照Guide to deploying 3rd party JARs to remote repository 考虑deploy:deploy-file。我总是以此为目标,将一些稳定的工件发布到开发人员公共远程存储库,以供其他团队测试/使用。

我希望这会有所帮助。

【讨论】:

  • 看起来如果您正在尝试实际部署当前安装在 .m2/repository maven 中的工件,则会抱怨错误:``无法从本地存储库部署工件`(试图找到解决方法为它)
【解决方案2】:

我不认为有一个纯粹的 Maven 解决方案。问题是您的仅部署构建不知道要部署哪些工件 - AFAIK 此信息仅在内存中的 Maven 模型中,而不是持久化到目标文件夹。

可以使用支持暂存的 Maven 存储库管理器解决该问题,例如(商业)Nexus Pro。然后,您的构建将直接部署到临时存储库中,并且只有在一切成功时才将工件提升到(主)存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2011-03-25
    • 2023-03-15
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多