我正在将现有的Maven构建迁移到gralde并面临此问题。 在Maven pom.xml中,在Maven配置文件中指定spring propertyplaceholderConfig值。 Maven构建 规定了三种类型的型材开发,测试和生产线如何在Gradle构建中指定Spring propertyPlaceHolderConfig值?
我想实现在gradle这个构建同样的事情,但直到现在无法弄清楚如何做到这一点的gradle这个
感谢, 马诺
我正在将现有的Maven构建迁移到gralde并面临此问题。 在Maven pom.xml中,在Maven配置文件中指定spring propertyplaceholderConfig值。 Maven构建 规定了三种类型的型材开发,测试和生产线如何在Gradle构建中指定Spring propertyPlaceHolderConfig值?
我想实现在gradle这个构建同样的事情,但直到现在无法弄清楚如何做到这一点的gradle这个
感谢, 马诺
我想有不同的选择,你可以如何使用gradle建模现有的mvn配置文件。我给你在这里一个例子:
给你有一个属性文件,它看起来像这样:
property1=$prop1 //prop1 and prop2 are placeholder for your environment specific values
property2=$prop2
现在,你可以在你的build.gradle文件您的配置文件型号:
def profileProperties = [
test:[prop1:"testValue1", prop2:"testValue2"],
dev:[prop1:"devValue1", prop2:"devValue2"],
prod:[prop1:"prodValue1", prop2:"prodValue2"]
]
这只是groovy中定义的普通嵌套地图。
通过传递一个命令行选项“轮廓”您呼叫的gradle
gradle clean build -Pprofile=dev
你可以通过你的gradle这个项目目前在你什么样的环境。在构建脚本,你可以通过添加这种区分以下到您的构建文件:
def usedProfile = project.getProperty("profile")
processResources{
expand(profileProperties[usedProfile])
}
这需要您定义的profileAttribute并读取环境属性的相应映射。此环境属性作为映射传递给扩展过滤器方法,这是gradle API的一部分。请参阅http://gradle.org/docs/current/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:expand(java.util.Map)以获取有关展开方法的详细信息。
一个简单的Java项目现在应该是这样的,整个的build.gradle文件:
apply plugin:'java'
def profileProperties = [
test:[prop1:"testValue1", prop2:"testValue2"],
dev:[prop1:"devValue1", prop2:"devValue2"],
prod:[prop1:"prodValue1", prop2:"prodValue2"]
]
def usedProfile = project.getProperty("profile")
processResources{
expand(profileProperties[usedProfile])
}
这只是一个草案,当然你也可以使用所有常规的善良在这里在这里添加更多的逻辑,就像有一个默认的配置文件等
希望帮助,
问候, 勒
感谢刘若英,我会尝试这个明天 – manojpardeshi111