我正在尝试从1个java项目构建2个jar。 2个jar将具有完全相同的源EXCEPT在构建时,将使用设置为True的布尔变量构建,并且将使用设置为False的相同布尔变量构建。
示例:
Jar 1将具有所有相同的源,除了它将具有的1个java文件:
public static final boolean ENABLE_TOAST = True;
Jar 2将具有所有相同的源,除了它将具有相同的java文件:
public static final boolean ENABLE_TOAST = False;
我对Maven和Ant比较陌生,我有使用maven-replacer-plugin的想法。但是,我找不到之前做过类似事情的人。
答案 0 :(得分:1)
我的方法是创建三个属性文件:
2)和3)对每个环境都有不同的设置(例如,对于prod,ENABLE_TOAST = false,对于测试,则为true)
当然,应用程序仅使用app.properties
在构建时,我将app.properties替换为正确环境(2或3)的内容
在ANT中,我有两个目标,每个目标都有一个复制文件命令,其覆盖标志设置为true。
我确信MAVEN有类似功能(太忙无法查找ATM)
希望这会有所帮助
答案 1 :(得分:0)
您要做的不是标准做法,并且建议您也应该使您的代码免于这些类型的做法。
针对这些类型问题的最佳解决方案是外化尽可能多的属性,最重要的是尽量避免将这些属性文件作为jar的一部分。将它们存储在服务器中的某个位置。
我可以给你一个非常简单的例子,在我们的应用程序中,我们为不同的环境(如Dev,QA,UAT等)提供了不同的数据库连接细节,因此我们提供了所有这些值,而不是将所有这些内容集成到java代码中。在属性文件中,在java代码的帮助下,我们在应用程序启动时读取这些属性。
由于