【问题标题】:Maven―Dependencies, static content from remote repositoryMaven―依赖关系,来自远程存储库的静态内容
【发布时间】:2013-06-04 11:02:07
【问题描述】:

我对 maven 有点陌生,但我对 ant 和构建过程有一些经验。我想做一件让我发疯的事情:

给定:

  1. 保存静态内容(如图像)的远程存储库(git、svn、hg...),
  2. 一个 maven 项目,它使用/管理提到的存储库的方式与处理所有其他依赖项的方式相同(安装时签出,发生更新时更新),换句话说:maven 项目依赖于该存储库

我终于希望能够在构建时访问内容(不是 *.svn 或 *.git)并将其复制到我的构建中*。

我希望 maven 在每台机器上仅将该存储库的本地副本存储在 maven 的本地存储库 (~/.m2/repository) 中,并像所有其他依赖项一样对其进行管理。

*我不是在尝试构建 Java 项目

感谢您的帮助!

【问题讨论】:

  • Maven 的基本思路是每个项目生成一个 groupId-artifactId-version 工件,然后将其存储在您的本地存储库中以供其他人依赖。如果你不遵循这种思维方式,你将很难使用 Maven。编写一个小型 Maven 项目会相对容易,该项目会生成一个包含您的项目可以依赖的静态内容的 jar/zip 文件,但您必须确保自己解压缩。

标签: maven build dependencies build-process build-automation


【解决方案1】:

据我所知,Maven 项目不使用版本控制存储库作为外部工件。我认为这对你想要的来说有点太细了。

当项目 A 想使用项目 B 的资源时,我做过类似的事情。

  1. 作为其构建过程的一部分,项目 B 将其资源收集到一个 ZIP 文件中,并将该 ZIP 文件部署到一个 maven 存储库中。
  2. 然后项目 A 引用 ZIP 文件工件,在构建到需要的位置时将其解压缩。

查看dependency plugin for maven,尤其是dependency:unpack 和dependency:unpack-dependencies 目标。

玩得开心

【讨论】:

  • 我已经偶然发现了依赖插件。这是否意味着我需要创建自己的 maven 存储库,该存储库本身包含我想使用的静态内容的 *.zip?
  • 您可以有一个将工件部署到存储库中的 maven 项目。你也可以使用 Ant 来做同样的事情。您要做的是将工件部署到存储库中。你怎么做取决于你。使用 Maven 项目这样做可能会更容易,但如果您喜欢自己做很多工作,这不是强制性的。
  • 作为一个初学者,我只是没想过部署像 nexus 这样的东西来创建我的 on maven 存储库。因为罐子只是一个拉链,我可以把我的静态包装在这样的东西里。谢谢
  • 我个人认为,如果您使用 maven 作为关键应用程序的构建工具,您应该有一个本地存储库(用于镜像公共存储库以及部署您自己的工件)。仅依赖公共存储库的风险太大。幸运的是,有很多优秀的开源产品可以降低这种风险。
猜你喜欢
  • 1970-01-01
  • 2011-12-27
  • 2011-06-06
  • 2019-11-19
  • 1970-01-01
  • 2017-06-10
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多