是否可以从 p2 repo 解决 maven 插件中的依赖关系

Posted

技术标签:

【中文标题】是否可以从 p2 repo 解决 maven 插件中的依赖关系【英文标题】:Is it possible to resolve dependencies in maven plugin from p2 repo 【发布时间】:2016-11-01 03:38:00 【问题描述】:

我正在开发一个 maven 插件,它将用于覆盖默认的 maven 生命周期,并将使用我的代码。我有多个 jar 依赖项(eclipse 和我的另一个应用程序插件)。我有这些罐子的 p2 回购。如何整合这两者来解决所有依赖关系? Tycho 不能使用,因为它只能用于 RCP 应用(我的理解/误解)。

与此类似 - question

还有其他解决方法吗?

【问题讨论】:

【参考方案1】:

你看过这个 git 吗? https://github.com/reficio/p2-maven-plugin 看起来像您想要实现的目标。

它还说明了插件的最佳实践:

不要使用 Tycho 的 pomDependencies->考虑选项,因为它根本没有好处 不要在 pom.xml 的依赖项部分定义您的外部依赖项(mvn 编译将在控制台中工作,但在您导入项目时它不会在 Eclipse IDE 中工作,因为“目标配置”一无所知关于那里定义的依赖项) 使用 MANIFEST-FIRST 方法 - 在 MANIFEST.MF 文件中定义所有依赖项。 如果您的某些依赖项不是 OSGi 包或在 P2 更新站点中不可用,只需在 p2-maven-plugin 配置中定义它们,生成站点并使用 jetty(或任何其他机制)使其可用。然后将公开站点的 URL 添加到目标平台定义中。这样,您将在 Eclipse RCP 项目中拥有一致的、清单优先的依赖管理! 每当您必须添加另一个外部依赖项时,只需重新调用“mvn p2:site”即可重新生成站点。 您可以使用 Jenkins 和 Apache2 等自动生成/展示我们的网站

【讨论】:

你能给我举个例子吗?

以上是关于是否可以从 p2 repo 解决 maven 插件中的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章

如何让maven不对repo中文件进行加密校验

Maven 依赖版本不匹配问题 - 从 repo 解决过时的依赖版本

如何使用旧的 maven 插件在 gradle 中的本地和远程 repo 之间切换?

Maven Java API:独立依赖解析(即不是 Maven 插件)

Git repo 的内部版本号 maven 插件

是否有 Maven 插件可以从 swagger 端点生成客户端代码?