Maven:通过JavaAPI启用资源过滤
我正在使用标准java类MavenProject和com.jcabi.ether.ether java API来确定给定POM的jar依赖项集。默认情况下,没有通过API进行资源筛选,我还没有发现如何为诸如Maven:通过JavaAPI启用资源过滤,maven,filtering,pom.xml,java,aether,Maven,Filtering,Pom.xml,Java,Aether,我正在使用标准java类MavenProject和com.jcabi.ether.ether java API来确定给定POM的jar依赖项集。默认情况下,没有通过API进行资源筛选,我还没有发现如何为诸如 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${my-junit.version}<
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${my-junit.version}</version>
<scope>test</scope>
</dependency>
如何通过这些API启用资源筛选,以便默认情况下发生用户/内置属性替换?或者这是一个手动过程?如果可能,请提供代码示例,干杯 我们遇到了类似的问题,必须手动进行属性替换。您可以在
MavenProject
参考上调用getProperties()
方法
应采取以下措施:
Properties props = proj.getProperties();
String depVersion = stripOutDollarAndCurlyBrackets(dep.getVersion());
String realDepVersion = props.getProperty(depVersion);
dep.setVersion(realDepVersion);
显然,您需要编写
stripOutDollarAndCurlyBrackets()
方法,但希望这能为您提供思路。请注意,这不是资源筛选,而是属性插值。我将使用mvn help:effective pom
生成完整的pom,然后让您的代码读入其中。
Properties props = proj.getProperties();
String depVersion = stripOutDollarAndCurlyBrackets(dep.getVersion());
String realDepVersion = props.getProperty(depVersion);
dep.setVersion(realDepVersion);