我使用标准 java 类 MavenProject 和 com.jcabi.aether.Aether java API 来确定给定 POM 的 jar 依赖项集。默认情况下,没有通过 API 进行资源过滤,我还没有发现如何调用 Aether.resolve() 以获取依赖项,例如
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${my-junit.version}</version>
<scope>test</scope>
</dependency>
没有出现 DependencyResolutionException 错误,原因是:无法加载 'junit:junit:jar:${my-junit.version}' 因为它具有文字 '${..}' 版本字符串。这是一个代码片段:
MavenProject proj = ..
Dependency dep = proj.getDependencies()...
Aether aether = new Aether(proj, ..)
aether.resolve(new DefaultArtifact(... dep.getVersion() ..)
如何通过这些 API 启用资源过滤,以便默认发生用户/内置属性替换?或者这是一个手动过程?如果可能,请提供代码示例,干杯!