gpt4 book ai didi

java - 在 Eclipse 中发布应用程序时替换属性文件的内容

转载 作者:行者123 更新时间:2023-11-29 08:50:55 26 4
gpt4 key购买 nike

我们有一个 .ear 项目和几个依赖的 .jar 项目,我们正在使用 Maven。每个项目都有自己的属性文件,但是里面的属性没有具体的值,只有占位符,例如

database.url=${database.url}

占位符 ${database.url} 在使用资源插件的 Maven 构建过程中被替换。因此,对于每个阶段(本地、测试、集成、生产),我们都有一个定义过滤器的不同 Maven 配置文件,因此如果我们为测试阶段构建,我们会得到类似的东西

database.url=url.for.test.db

该应用程序在 WLS 12 上运行,我们希望使用 Eclipse 服务器插件(我们使用的是 Eclipse Kepler)将其部署在本地 WLS 上。但是,当我们将应用程序添加到 Eclipse 中的服务器并发布时,它无法正常工作,因为属性文件中的占位符未替换为特定值。

据我所知,正在部署的内容位于 Eclipse 工作区中:

<workspace>\.metadata\.plugins\org.eclipse.core.resources\.projects\<ear-project-name>\beadep\<WLS domain name>\<ear-project-name>

当然我们可以更改该位置的属性文件,但每当我们在 Eclipse 中发布时,这些更改都会被覆盖,我们将再次获得原始属性文件

database.url=${database.url}

部署到 WLS 时没有用。

在将属性文件从 Eclipse 部署到 WLS 之前,是否存在更改属性文件的任何机制或可能性?

感谢您的帮助。

最佳答案

好的,这是我选择的解决方案(我不确定它是否是最好的,但至少它是有效的):

我向名为“properties-local”的 .ear 项目添加了一个新文件夹。此文件夹仅包含那些与本地部署相关的属性文件(无占位符),例如

database.url=url.for.local.db

在 Eclipse 项目的属性中,有一个“部署程序集”部分。我将新文件夹“properties-local”添加到部署路径 APP-INF/classes,因此这是它们将出现在用于本地部署的 .ear 中的位置。

负责为远程阶段构建 .ear 文件的 maven-ear-plugin 不知道目录 properties-local。

所以该解决方案的缺点是,现在有两个包含属性文件的文件夹:一个用于本地 Eclipse 部署,一个用于部署在远程服务器上的 .ear 文件。

关于java - 在 Eclipse 中发布应用程序时替换属性文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com