spring - 可以在 Spring 上下文中使用gradle替换值吗?

标签 spring properties replace gradle profile

我有一个Web应用程序两个不同的配置文件:“test”和“dev”,然后我有2个包含文件的文件夹/opt/myApp/dev/opt/myApp/test

我需要构建我的App,将参数发送到gradle,以便根据配置文件定义路径。

在我的spring application-context.xml中,我有以下内容:

 <bean id="myBean" class="com.myClass">
        <property name="locations" value="file:/opt/myApp/${profile}"</property>
 </bean>

如果我做不到这样的话会很好的:
 gradle build -Pprofile

Gradle脚本可以完成工作

我查看了文档和stackoverflow,发现了有关过滤器的信息。但是我无法使它工作。

我正在尝试this和其他类似的东西。

最佳答案

可能有一种更清洁的方法,但是类似:

application-context.xml:

<bean id="myBean" class="com.myClass">
    <property name="locations" value="file:/opt/myApp/@profile@"</property>
</bean>

build.gradle:
import org.apache.tools.ant.filters.*
apply plugin: 'java'

if (! hasProperty("profile")) {
  ext.profile = "dev"
}

processResources {
  filter(ReplaceTokens, tokens: [profile: profile])
}

然后像这样调用它:
gradle -Pprofile=test

关于spring - 可以在 Spring 上下文中使用gradle替换值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336371/

相关文章:

java - org.hibernate.QueryParameterException : could not locate named parameter

spring - 如何避免在 requestMapping 方法中使用实体造成的漏洞?

javascript - 如何将数组元素作为对象属性检索

javafx - 如何在场景构建器中使 StylableDoubleProperty 可编辑

c# - 用双反斜杠替换单反斜杠

spring - 如何使用 MockMvc 测试 spring Controller 方法?

spring-boot - 是否可以读取@Repository 中的属性文件值?

c++ - 替换功能不起作用?

Perl 初学者 : How can I find/replace ascii characters in a file?

java - Spring 中的自定义电子邮件服务 - 需要帮助改进