如何在Eclipse项目中构建期间过滤资源?

Rom*_*las 5 eclipse ant configuration maven-2 filtering

我有一个使用多个配置文件的应用程序(这里只考虑appli.properties).这些文件包含几个取决于环境的值.我们可以找到一些信息,例如:

server.port=${envi.server.port}
Run Code Online (Sandbox Code Playgroud)

另一方面,我有一组属性文件,每个环境一个(dev.properties,homolo.properties等).它们包含配置文件中某些属性的值.我们可以在这里找到这种属性:

envi.server.port=4242
Run Code Online (Sandbox Code Playgroud)

我的构建由Maven2处理.一切都很好.

但是,我现在需要将我的项目导入Eclipse.我主要关心的是配置文件过滤.事实上,如果我不为我的项目我的Eclipse的参数做任何修改(一后MVN日食:日食命令),那么我所有的配置文件将保持属性键(即${envi.server.port}),而不是它们的值.有了这样的配置文件,我的应用程序将无法在Eclipse中运行...

所以我试了两个解决方案:

  • 一个完整的Maven解决方案,使用m2eclipse插件.我在项目配置中添加了Maven Builder,然后,每次构建时,都会对文件进行过滤.
  • Ant(仅在Eclipse中使用).我几乎没有定义一个模拟Ant中文件的Maven2过滤的任务.此任务仅专用于过滤,无需编译.

这两种解决方案的常见问题是,每次操作都会进行过滤(基本上可以节省Java类版本),然后需要时间.然而,第二种解决方案比第一种解决方案(超过10秒)更快(3秒).

您如何看待我的方法?你会怎样以更好的方式做到这一点?

Ric*_*ler 2

如果资源不经常更改,您可以将 Maven 构建设置为仅在 Clean 构建之后运行,这样就不会造成太大干扰,但这对加快构建速度没有任何作用。

至于使过滤更快,我不知道有任何其他简单的机制会有所帮助,正如您所说,您需要 Ant 或 Maven 来运行过滤,并且它们在构建之前都需要一些时间来设置,从而导致速度变慢。

如果这给您带来了很多问题,您可以编写一个自定义增量 Eclipse 构建器来对增量执行过滤。这应该会快得多,但显然要花费更多的精力来编写。