要在Maven war项目中打包的不同文件

我有一个war包装Maven项目,其中我有一个名为myapp.properties的Java属性文件。 在此属性文件中,我存储了一些参数,例如,将由webapp使用的数据库连接参数。

  1. 无论是在持续集成环境中还是在我的开发环境中,我都想在myapp.properties中设置一些测试参数来连接到我的测试数据库。
  2. 同时,我希望在最终的war包中将这些参数留空,以便用户可以在部署到其环境期间自行添加这些值。 最终的war包应该是在持续集成环境中生成的构建工件。

基本上,我想在不同的情况下使用两个版本的myapp.properties文件。 我的问题是,Maven解决这个问题的方法是什么? 我在开发环境中使用Eclipse + WTP + m2eclipse,我希望该解决方案能够与我的开发工具一起使用。

你可以看一下这个博客: http : //blog.jayway.com/2010/01/21/one-artifact-with-multiple-configurations-in-maven/

他们构建不同的war文件并使用不同的分类器(而不是不同的配置文件)。 我不确定它是否是maven方式,但它适用于我的一些项目。

我会试试

你的项目(或父pom)的pom.xml

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

在您的属性文件中,例如

 db.url=${db.url} 

并在您的settings.xml中(请参阅http://maven.apache.org/settings.html#Profiles )

 jdbc:mysql://localhost:3306/testdb 

根据您的开发阶段(本地,构建服务器等),您可以使用不同的db.url值

这不会让db.url属性留空,但是每次打包神器时你都不希望它真的留空吗?