代码之家  ›  专栏  ›  技术社区  ›  Sergio Acosta

Java平台:如何管理每个开发人员的配置设置

  •  5
  • Sergio Acosta  · 技术社区  · 14 年前

    How to manage Configuration Settings for each Developer

    如何管理必须为每个开发人员设置的应用程序配置设置,而不将它们签入源代码管理 在Java平台上 ?

    例如,这就是我们现在正在做的事情:

    • 数据源配置存储在Spring配置xml文件中。

    • 目前,每个开发人员都编辑该文件,并尽量不将该文件提交到源代码管理中。我们中的一些人有补丁(diff文件),在对本地数据库执行测试之前应用于代码,并在签入代码之前删除补丁。其他开发人员手工编辑和恢复配置文件。

    但是,我的问题不限于数据库连接设置。我想找到一个解决方案,每个开发人员都可以覆盖应用程序配置设置,而不必更改源代码管理的文件。

    如果我们必须改变存储配置设置的方式,那么我认为我们应该这样做(也许JNDI?,一个众所周知的路径中的外部配置文件?,我不知道)

    你会做什么?

    5 回复  |  直到 7 年前
        1
  •  2
  •   Bozho Michał Mech    14 年前

    将配置文件放在外部目录中。如果不存在,则读取默认配置文件。外部目录可以配置,并且可以有一个默认值,比如 c:\workspace\config

    或者,在构建过程中,可以将外部属性复制到构建工件中。

        2
  •  2
  •   leonm    14 年前

    缺点是您的代码签出有点大。

        3
  •  2
  •   meriton    14 年前

    将模板文件(如sample.context.xml)签入源代码管理。每个开发人员都将该文件复制到context.xml,并进行他喜欢的任何修改。如果实际配置文件位于源代码管理的目录中,请将其添加到svn:ignore to 防止意外签入。

    如果缺少本地配置文件,则应用程序不会启动。这使得新的团队成员很明显 可以

    <j2ee:jndiLookup> .

        4
  •  1
  •   bragboy    14 年前

    拥有这些配置的最佳位置是数据库。并在生产代码中添加几行代码来读取这些配置。只要目的解决了,一切都连贯一致,就没有坏处。放在一个小框架上,它读取这些配置并覆盖生产中出现的默认配置。

    幸运的是,像Rails这样的一些框架确实提供了这些功能,而且我很确定它在Java中也很灵活。

        5
  •  1
  •   user7094 user7094    14 年前

    我们在这里做的一件事是有一个属性加载器,它首先检查系统属性。

    e、 你有一个叫 datasource.url 它会被载入你的Spring文件。

    -Ddatasource.url=[local-datasource-url]

    然后它重写属性文件中的值。

    显然,对于Swing应用程序(我们以前的应用程序)来说,这比web应用程序更容易实现,但仍然是可能的。