如何使用 Maven 的 Java API 访问 Maven Artifact POM?

2024-06-18

我正在尝试检索整个依赖关系树及其从项目根部开始的 pom。我从文件系统中已经存在的 POM 开始,但我不确定如何从存储库中检索依赖项 pom。

我正在使用以下代码来访问依赖项列表。从列表中我获得了有关文物的所有信息。我只是不确定如何访问存储库。

FileReader reader = null;
Model model = null;
MavenXpp3Reader mavenreader = new MavenXpp3Reader();

File pomfile = new File("pom.xml");

model.setPomFile(pomfile);
MavenProject project = new MavenProject(model);

List<Dependency> deps = project.getDependencies();

// Get dependency details
for (Dependency d: deps) {          
    System.out.print(d.getArtifactId());
    System.out.print(":");
    System.out.println(d.getVersion()); 
}           

实际上,您已经非常接近阅读依赖项了。所缺少的是:

Model model = mavenreader.read(new FileReader(pomFile));

完整示例:

MavenXpp3Reader mavenreader = new MavenXpp3Reader();

File pomfile = new File("pom.xml");
Model model = mavenreader.read(new FileReader(pomFile));

List<Dependency> deps = model.getDependencies();

for (Dependency d: deps) {          
    System.out.print(d.getArtifactId());
} 

这不会为您提供依赖关系树,但您可以对找到的依赖关系重复它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Maven 的 Java API 访问 Maven Artifact POM? 的相关文章

随机推荐

  • 如何全局忽略 UTF-8 字符串中的无效字节序列?

    我有一个 Rails 应用程序从 Rails 版本 1 以来的迁移中幸存下来 我想忽略all其上的无效字节序列 以保持向后兼容性 我不知道输入编码 示例 gt Men xFC split n ArgumentError invalid by
  • 如何正确实施 Unicode 密码?

    添加对 Unicode 密码的支持是开发人员不应忽视的重要功能 尽管如此 在密码中添加对 Unicode 的支持仍然是一项棘手的工作 因为相同的文本可以在 Unicode 中以不同的方式进行编码 并且您不希望因此阻止人们登录 假设您将密码存
  • HubSection 中的 DataTemplate 未获得完整高度

    我有以下代码
  • Javascript代码可以在jsfiddle中运行,但不能在浏览器中运行[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试搜索类似的问题 但无法找到我的代码在 jfiddle 中工作但在浏览器中不起作用的原因 我还尝试将我的代码从 jfiddle
  • 如何在 Bazel 中禁用 C/C++ `-Werror` 构建错误? (又名:如何关闭已由“-Wall -Werror”打开的特定警告)

    我在构建时遇到以下错误 has undefined behavior Werror Wundefined reinterpret cast Bazel 构建从此完全停止clang llvm编译器 Wundefined reinterpret
  • jQuery UI:如何更改进度条的颜色?

    我设置了一个简单的 jQueryUI 进度条 div div 现在 我想根据条形的值对其进行着色 例如 50 绿色 我该怎么做呢 注 有类似的问题 https stackoverflow com questions 1247660 how
  • 谷歌字体包是否会下载设备上的字体?

    在我的 flutter Android 应用程序中 第一次启动时 该应用程序显示默认字体 一秒钟后它更改为我从 google fonts flutter 包中使用的字体 我想我的问题是 应用程序第一次启动时是否会立即下载字体 如果是 可以使
  • 2 个数组/图像相乘的多线程性能 - 英特尔 IPP

    我正在使用英特尔 IPP 来进行 2 个图像 数组 的乘法 我使用的是 Intel Composer 2015 Update 6 附带的 Intel IPP 8 2 我创建了一个简单的函数来乘以太大的图像 整个项目已附后 见下文 我想看看使
  • Firefox 后退按钮与 iframe

    在 Firefox 中 如果 iframe 的 window location 发生更改 则会将其填充到顶级窗口的历史记录中 如果用户现在单击浏览器后退按钮 iframe 的内容将发生变化 而不是浏览器返回到之前的 HTML 页面 这对于某
  • 一行总结详细信息? [复制]

    这个问题在这里已经有答案了 我希望页脚内的详细信息成行显示 现在每个详细信息都显示在新行上 我怎样才能让它与 CSS 一起工作
  • 空的 HTML5 页面仍然会溢出并在移动设备上触发滚动条

    我期望的是一个不会溢出的页面 因为没有内容 因此不需要滚动 但我得到的是一个空页面 但它仍然滚动 而不仅仅是触摸事件上出现的滚动条的美观问题 它实际上偏移了视口中的背景 我一直在尝试谷歌向我提供的一切 以确保主体块的宽度和高度等于视口的大小
  • 如何将 IronPython 与 Visual Studio 2008 结合使用

    我尝试过使用 Microsoft 提供的 IronPython 集成扩展 但它不适用于 Visual Studio 2008 是否有适用于 IronPython 的合适 VS 2008 IDE 扩展 对于 IronPython 1 1 支持
  • 在 SQL 中将数字求小数次幂

    我试图在 MS SQL 中将一系列数字求小数 1 5 次幂 但在应用于负基数时出现 域错误 这应该不是问题 因为我要提升到奇次幂根 此外 我可以在 Excel 中进行计算 谁能评论一下 MS SQL 是否根本不支持将负幂提高到小数根 负基数
  • 我可以在 macOS 上使用 win32com 客户端吗?

    我一直在研究 Pycel 和 Xlrd 库 在 Mac 上使用它们的问题是这两个库都使用 win32com client 读取 Excel 文件 所以我想知道 有什么办法我可以使用win32commacOS 的客户端 如果没有 我可以使用类
  • 如何查看 org.codehaus.jackson 日志消息 - 使用logging.properties

    我正在尝试反序列化传入的PUT使用 JSON 请求正文进行请求org codehaus jackson包裹 我收到错误消息The request sent by the client was syntactically incorrect
  • 显示特定颜色

    我正在研究颜色分类 我正在用特定颜色初始化一个矩阵 以便可以获得红色 蓝色或绿色的 16x16 矩阵 代码如下 library rgl color1 lt function n lt 3 m lt 16 a lt list numeric
  • ruby 2.0.0p247 的分段错误导致 Rails 服务器崩溃

    在 OS X Mavericks 1 9 上运行 Rails 4 0 Ruby 2 0 0p247 我今天遇到了一个我从未遇到过的错误 我不明白 当尝试在我的项目中启动 Rails 服务器时 服务器崩溃了 我确实尝试重新安装并重新编译一次
  • 如何检测在 MapView 中选择了哪个注释

    我在地图内做了一些注释 当我点击它们时 我会看到一些信息 并且有一个打开地图的按钮 并且使用我无法接受的正确信息应该可以绘制出我的路线 这是我的代码 我有 2 个双精度数组用于我的经纬度 我从查询中填充了它们 var lat Double
  • Laravel 5 使用语句[重复]

    这个问题在这里已经有答案了 第一次使用 Laravel 5 我了解命名空间的使用以及为什么需要使用它们 我不明白的是为什么我需要添加如下所示的 use 语句 在控制器的顶部 use Session use Input use Respons
  • 如何使用 Maven 的 Java API 访问 Maven Artifact POM?

    我正在尝试检索整个依赖关系树及其从项目根部开始的 pom 我从文件系统中已经存在的 POM 开始 但我不确定如何从存储库中检索依赖项 pom 我正在使用以下代码来访问依赖项列表 从列表中我获得了有关文物的所有信息 我只是不确定如何访问存储库