Apache Maven过滤器的pom属性

时间:2019-05-10 15:32:56

标签: java maven

我正在尝试为属性创建过滤器。真的,这只是一个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,以测试更改并仅在特定的构建配置文件中使用。

0 个答案:

没有答案