在Aether中获取Maven依赖的<type>类型字段方法咨询
获取Aether Dependency对象中的POM 字段
我之前也碰到过这个困惑,一开始误以为要找什么复杂的方法,其实答案就在你已经用到的Artifact对象里!
要提取POM里的<type>字段(比如<type>ejb</type>),步骤很简单:
- 从
Dependency对象通过getArtifact()拿到对应的Artifact实例 - 调用
Artifact的getType()方法,这个方法返回的就是POM中<type>标签指定的值
举个实际的代码例子:
// 假设你已经获取到了目标Dependency对象 org.eclipse.aether.graph.Dependency dependency = ...; // 获取底层Artifact org.eclipse.aether.artifact.Artifact artifact = dependency.getArtifact(); // 提取POM中的type字段值 String pomType = artifact.getType(); // 输出结果,比如当POM里是<type>ejb</type>时,这里会打印"ejb" System.out.println("POM依赖的type值:" + pomType);
这里要注意区分两个容易混淆的方法:
getType():对应Maven POM里的<type>字段,是依赖的类型标识getExtension():对应依赖文件的扩展名(比如ejb类型的依赖,扩展名通常还是jar)
不管是直接依赖还是依赖管理中的条目,这个方法都能准确获取到POM里定义的<type>值,亲测有效!
内容的提问来源于stack exchange,提问作者JF Meier
相关产品推荐
相关产品推荐

