【问题标题】:How do I search through dependencies in a maven plugin to find specific files?如何在 Maven 插件中搜索依赖项以查找特定文件?
【发布时间】:2018-11-24 16:57:10
【问题描述】:

我可能只是在谷歌上搜索错了,所以如果答案很明显,我很抱歉。我正在尝试创建一个 Maven 插件,该插件需要搜索项目具有的每个依赖项,并找到包含特定命名空间的 XML 文件。

但我不知道如何在项目的每个依赖项中找到所有 XML 文件?我更愿意将它们作为资源流获取,这样我就可以直接从 JAR 中解析它们,但我并不挑剔。

提前感谢您的帮助。

【问题讨论】:

    标签: xml maven maven-plugin dependency-management


    【解决方案1】:

    首先,您需要在 Mojo 的首选范围内设置 requiresDependencyResolution。接下来需要获取MavenProject,这样就可以查询它的依赖了,可以是目录也可以是jar。从那时起,您应该能够扫描 xml 文件。

    【讨论】:

    • 感谢罗伯特的帮助。您能否详细说明从何处获取包含 MavenProject 的工件?我按照这里的指南maven.apache.org/guides/plugin/… 找到了这个stackoverflow 帖子stackoverflow.com/questions/35457401/… 但我不太清楚要导入什么来访问MavenProject。
    • 在搞砸了一点之后,我能够获得由 org.apache.maven.artifact.Artifact 表示的项目中所有依赖项的列表。但我无法真正找到获取 Artifact 和检查其内容之间的联系。
    • 这也是我的理解,但据我所知,Artifact 上没有任何句柄来实际获取它包含的内容。你是建议我解压 Artifact 并通过文件系统检查它,还是我遗漏了什么?
    • 对,它要么是 jar 要么是目录(我认为后者是设计缺陷,但这是另一个讨论 :))。因此,使用 java.util.jar.JarFile 您可以读取每个条目的内容,如果是目录,则必须扫描目录。
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多