我们有一个为不同客户定制的Java EE应用程序的代码库。定制是在运行时实现的。该应用程序由工厂类引导,该工厂类从JNDI读取配置参数,检测客户并构建自定义组件。
这种方法的一个缺点是应用程序始终包含所有客户的代码(例如,不同客户的标签文件,其中按钮标记为客户A为“拒绝”,客户B标记为“拒绝”,但也具有客户特定逻辑的零件)。
另一个缺点是客户A可以使用客户B的配置参数并使用为客户B设计的应用程序版本。
是否可以在构建期间而不是在运行时设置客户?每个构建的结果应该是我们的app-customer-X.war 我们的构建系统是maven。