0

我们是 4 名开发人员,致力于基于maven 的 java web 项目database.properties我们每个人都有一个指向每个开发人员数据库模式的特定文件。

我们目前遇到的问题是,我们有时会无意中提交每个开发人员的 database.properties 或log4j.properties文件,这会导致明显的问题。

另一方面,如果我们将这些文件放到/libTomcat 的目录中,我们可能会忘记将它们包含在交付的生产应用程序中。

任何人都可以提供建议或建议最佳实践以解决此问题吗?

4

2 回答 2

2

您应该开始一起使用Maven 配置文件Maven 资源过滤

如果将这两种技术结合起来,那么每个用户都可以在文件中定义他的配置%USER_HOME%/.m2/settings.xml文件,而database.propertiesandlog4j.properties文件使用资源过滤从用户配置文件属性中获取用户特定的属性。

我一直在使用这种技术通过设置如下结构来支持不同的数据库:

src
  |-main
       |-filters
       |       |-derby.properties
       |       |-h2.properties
       |       |-mssql.properties
       |       |-mysql.properties
       |-templates
                 |-db.properties

而在我的pom.xml

<profiles>
    <profile>
        <id>derby</id>
        <build>
            <filters>
                <filter>src/main/filters/derby.properties</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/templates</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>mysql</id>
        <build>
            <filters>
                <filter>src/main/filters/mysql.properties</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/templates</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>mssql</id>
        <build>
            <filters>
                <filter>src/main/filters/mssql.properties</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/templates</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>h2</id>
        <build>
            <filters>
                <filter>src/main/filters/h2.properties</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/templates</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
</profiles>

你应该能够对你的文件做同样的事情。

于 2012-08-21T08:56:15.903 回答
0

使用 Git 并且仅在您 clense 本地引用时推送到主服务器。

于 2012-08-21T08:51:19.147 回答