Maven Java API:独立依赖解析(即不是 Maven 插件)
Posted
技术标签:
【中文标题】Maven Java API:独立依赖解析(即不是 Maven 插件)【英文标题】:Maven Java API : Standalone Dependency Resolution (i.e. not a Maven plugin) 【发布时间】:2013-06-01 09:58:00 【问题描述】:我一直在尝试开发一个相对简单的应用程序(用作自定义构建过程的前导),它将处理一些 POM 并从远程 repo 提前(transitevely)解决所有依赖项。
我已经成功地从 POM 中提取了各种属性(我正在其他地方使用),但是依赖解析被证明是相当困难的。
我已经尝试使用 org.apache.maven 中的各种类,还研究了 Aether。我已经在网上倾注了许多关于使用 org.apache.maven 解决依赖关系的资源,但是它们似乎都涵盖了 Maven 插件(它通过注释连接到 Plexus 容器中)而不是一个独立的应用程序,我不 [相信我] 可以访问该容器,因此无法使用我需要的各种对象,例如 ArtifactResolver 或 ArtifactRepositoryFactory。
有没有办法在不作为 Maven 的一部分执行时获取 Plexus 容器?如果是这样,是否有任何好的资源来解释这一点?如果没有,是否有不需要 Plexus 容器的关键类的实现?
【问题讨论】:
【参考方案1】:Ivy 和 Leiningen 是两个可以回答您问题的开源项目。两者都连接到 maven repos 进行依赖管理,但似乎不使用 maven 命令行。请注意,Leiningen 是针对 Clojure 项目的,所以如果您不了解 Clojure,可能很难理解。我从来没有看过它的来源。据我所知,它是用 Java 编写的。
【讨论】:
【参考方案2】:看看Eclipse Aether,有一个example可以做到这一点。
【讨论】:
以上是关于Maven Java API:独立依赖解析(即不是 Maven 插件)的主要内容,如果未能解决你的问题,请参考以下文章
Java Gradle API 的 Maven 依赖参数是啥?