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

时间:2010-11-18 15:45:58

标签: java web-applications maven-2

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

  1. 无论是在持续集成环境中还是在我的开发环境中,我都想在myapp.properties中设置一些测试参数来连接到我的测试数据库。例如。
  2. 同时,我希望在最终的war包中将这些参数留空,以便用户可以在部署到其环境期间自行添加这些值。最终的war包应该是在持续集成环境中生成的构建工件。
  3. 基本上,我想在不同的情况下使用两个版本的myapp.properties文件。我的问题是,Maven解决这个问题的方法是什么?我在开发环境中使用Eclipse + WTP + m2eclipse,我希望该解决方案能够与我的开发工具一起使用。

2 个答案:

答案 0 :(得分:4)

您可以查看此博客:http://blog.jayway.com/2010/01/21/one-artifact-with-multiple-configurations-in-maven/

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

答案 1 :(得分:0)

我会尝试用

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

        <build>
          ...
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
            <filtering>true</filtering>
        </resource>
         ...
        </build>

在您的属性文件中,例如

db.url=${db.url}

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

<db.url>jdbc:mysql://localhost:3306/testdb</db.url>

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

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