我正在尝试为属性创建过滤器。真的,这只是一个POC。后台它用于测试依赖项的升级版本,而不必更新pom。不知道这是否是正确的方法。我可以结合将filter设置为true来使用滤镜标记来插值另一个文件中的值:
根据作为过滤器的文件的工作示例,我在简单的main方法中看到了不同的值输出。
<filters>
<filter>src/main/filters/dev-app.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
我想做的是覆盖pom.xml本身中的值。因此,如果说我有<dep.hibernate.version>
并在pom中是5.4.0.final版本,但我想在构建时获取最新的5.4.2.final。有没有一种方法可以使用过滤器在pom.xml中覆盖此值。
根据这里的评论,我认为这可能实现:
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
例如,我们可以通过指定包含以下内容的过滤器文件my-filter-values.properties来将“ your.name”与POM分开
为清楚起见进行更新
我的项目版本受各种机制和插件的控制。我可以使用maven毫无问题地进行管理。
我试图做的是克服外部第三方版本的Maven版本僵化。因此,对于一个项目,我可以拥有:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Properties for project -->
<dep.commons.math3.version>3.2</dep.commons.math3.version>
</properties>
然后像这样使用
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>${dep.commons.math3.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
目标是我可以为管道设置一个过滤器,将该属性设置为3.5,以测试更改并仅在特定的构建配置文件中使用。