Maven根据配置文件修改值的方法

27

我有一个名为ApplicationResources.properties的属性文件,其中包含一个根据环境变化而改变的属性。假设该属性为:

     resources.location=/home/username/resources

当应用程序在开发和投入生产时,此值不同。

我知道我可以在Maven中使用不同的配置文件来在不同的环境中执行不同的构建任务。我想要做的是根据正在使用的Maven配置文件替换属性文件中资源位置的值。这是否可能?

1个回答

53

我想做的是根据使用的Maven配置文件,以某种方式替换属性文件中resources.location的值。这可能吗?

是可以的。激活资源过滤并在每个配置文件中定义要替换的值。

在你的ApplicationResources.properties中,像这样声明一个要替换的占位符:

resources.location=${your.location}

在你的POM文件中,为适当的<resource>标签添加一个<filtering>标签,并将其设置为true,如下所示:

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

接下来,在每个配置文件的 <properties> 元素内添加一个<your.location>元素:

<project>
  ...
  <profiles>
    <profile>
      <id>my-profile</id>
      ...
      <properties>
        <your.location>/home/username/resources</your.location>
      </properties>
      ...
    </profile>
    ...
  </profiles>
</project>

有关资源过滤的更多信息在这里在这里


请问你可以分享完整的pom.xml文件,其中需要哪个插件?我已经让它工作了,请查看https://stackoverflow.com/questions/51186963/value-from-maven-profile-properties-is-not-getting-used-in-properties-file - vikramvi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接