我们是4位开发人员,致力于基于maven的java web项目。我们每个都有一个特定的database.properties
文件,指向每个开发人员的数据库架构。
我们目前遇到的问题是我们有时会无意中提交我们的per-developper database.properties或log4j.properties
文件,而这些文件会引起明显的问题。
另一方面,如果我们将这些文件放入Tomcat的/lib
目录中,我们可能会忘记将它们包含在出厂的生产应用程序中。
有人可以提供建议或建议最佳做法,以便解决这个问题吗?
答案 0 :(得分:2)
您应该一起开始使用Maven Profiles和Maven Resource Filtering。
如果您将这两种技术结合使用,那么每个用户都可以在%USER_HOME%/.m2/settings.xml
文件中定义其配置文件,而database.properties
和log4j.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>
您应该可以对文件执行相同的操作。
答案 1 :(得分:0)
使用Git并在清理本地引用时仅推送到主服务器。