如何将Maven配置文件值注入属性文件

有点困在这里。 我有一个有3个配置文件的pom。 Theese配置文件具有不同的版本名称。 我想在构建特定的配置文件时将该版本名称注入属性文件中。

我的档案:

  dev  true   DEV    test  true   1.0.0-RC1    prod  true   1.0.0-Final    

和filter.properties看起来像这样:

 projectName = defaultName versionName = defaultVersion 

怎么做? 我按命令构建项目:

 mvn clean install -D profile_name 

您需要做的是在POM文件的部分添加一个新部分。

喜欢这个:

    true  **/*.properties  src/main/resources    

这将查看指定文件**/*.properties指定的文件夹( src/main/resources ),并在遇到定义的变量时更改文件。

所以为了这项工作,你的属性文件必须是这样的:

 projectName = ${defaultName} versionName = ${defaultVersion} 

请注意这些变量的名称。 Maven将使用您定义的名称替换它,或者像$ {projectVersion}的Maven结构的名称将替换为您的pom文件的1.0标记。

所以不要使用:

  1.0.0-Final  

将此变量的名称(和版本)更改为其他内容:

  1.0.0-Final someName  

在您的所有配置文件

并运行您的maven命令:

 mvn install -Pprofilename 

请注意您显示的配置文件。 默认情况下它们都是活动的,这是一个问题,因为它们都定义了相同的maven属性。 相反,您应该默认只将一个标记为活动。

您也不会显示过滤来处理filter.properties ,因此这也是一个错误。

最后,你可以在maven配置文件中控制工件版本。 我不认为这是个好主意。 请阅读maven-release-plugin 。