我有一个应用程序使用几个配置文件(让我们考虑appli.properties这里)。 这些文件包含几个取决于环境的值。我们可以找到一些信息,如:如何在构建Eclipse项目期间过滤资源?
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过滤属性的问题。 – 2009-08-06 16:08:21
@Mike如果我正确理解这一点,那么Maven构建会在每次更改时运行并需要大约10秒才能完成过滤,这是干扰的。 – 2009-08-06 16:51:51