我有一个使用多个配置文件的应用程序(这里只考虑 appli.properties)。
这些文件包含多个取决于环境的值。我们可以找到一些信息,例如:
server.port=${envi.server.port}
另一方面,我有一组属性文件,每个环境一个(dev.properties、homolo.properties 等)。
它们包含配置文件中某些属性的值。我们可以在这里找到这种属性:
envi.server.port=4242
我的构建由 Maven2 处理。一切正常。
但是,我现在需要将我的项目导入 Eclipse。
我主要关心的是配置文件过滤。事实上,如果我没有在我的项目的 Eclipse 参数中修改任何内容(在 mvn eclipse:eclipse 命令之后),那么我的所有配置文件都将保留属性键(即
${envi.server.port}
)而不是它们的值。有了这样的配置文件,我的应用程序将无法在 Eclipse 中运行......所以我尝试了两种解决方案:
这两种解决方案的共同问题是在每次操作时都进行过滤(本质上节省了Java类版本),然后需要时间。然而,第二个解决方案比第一个(超过 10 秒)更快(3 秒)。
你觉得我的做法怎么样?
你会怎么做,以更好的方式?
最佳答案
如果资源不经常更改,您可以将 Maven build设置为仅在 Clean 构建之后运行,那么它不会有太多干扰,但这对加速构建没有任何作用。
至于使过滤更快,我不知道有任何其他简单的机制可以提供帮助,正如您所说,您需要 Ant 或 Maven 来运行过滤,并且它们都需要一些时间才能在构建之前进行设置,导致减速。
如果这给你带来了很多问题,你可以写一个自定义 Incremental Eclipse builder对增量执行过滤。这应该快得多,但显然要付出更多的努力。
关于eclipse - 如何在 Eclipse 项目中构建期间过滤资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1238183/