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

标签 eclipse configuration maven-2 ant filtering

我有一个使用多个配置文件的应用程序(这里只考虑 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 中运行......

所以我尝试了两种解决方案:
  • 一个完整的 Maven 解决方案,使用 m2eclipse 插件。我在项目配置中添加了一个 Maven Builder,然后,每次构建时,都会对文件进行过滤。
  • Ant(仅在 Eclipse 中使用)。我已经 hardly在 Ant 中定义了一个模拟 Maven2 文件过滤的任务。此任务仅用于过滤,没有编译。

  • 这两种解决方案的共同问题是在每次操作时都进行过滤(本质上节省了Java类版本),然后需要时间。然而,第二个解决方案比第一个(超过 10 秒)更快(3 秒)。

    你觉得我的做法怎么样?
    你会怎么做,以更好的方式?

    最佳答案

    如果资源不经常更改,您可以将 Maven build设置为仅在 Clean 构建之后运行,那么它不会有太多干扰,但这对加速构建没有任何作用。

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

    如果这给你带来了很多问题,你可以写一个自定义 Incremental Eclipse builder对增量执行过滤。这应该快得多,但显然要付出更多的努力。

    关于eclipse - 如何在 Eclipse 项目中构建期间过滤资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1238183/

    相关文章:

    java - 内容中实现的类/子类有助于 eclipse

    regex - 区分大小写的网址

    windows - 如何在具有不同编码的异构环境中使用maven?

    maven-2 - 使用 Maven 设置标准目录布局

    java - Eclipse:初始化端点 java.net.BindException 时出错:权限被拒绝:443

    java - Eclipse Java 自动完成当前类方法

    android - 如何让 Eclipse 识别 R 和 Android 的 Lunar Lander 中的资源?

    spring-boot - 字符串列表的 Spring Boot YAML 配置

    ffmpeg - 如何使 mpv 与 mininterpolate 等 ffmpeg 过滤器更兼容?

    java - 创建maven项目