如何使用gradle将.properties文件添加到WAR中?

如何使用gradle将.properties文件添加到WAR中?,gradle,Gradle,像这样的方法应该会奏效: import org.apache.commons.httpclient.HttpClient import org.apache.commons.httpclient.methods.GetMethod group = 'gradle' version = '1.0' apply plugin: 'war' apply plugin: 'jetty' apply plugin: 'eclipse' eclipseProject { projectName

像这样的方法应该会奏效:

import org.apache.commons.httpclient.HttpClient
import org.apache.commons.httpclient.methods.GetMethod

group = 'gradle'
version = '1.0'

apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'eclipse'

eclipseProject 
{
  projectName = 'crap'
}

defaultTasks 'build'

dependencies 
{
   //all my dependencies
}

war 
{        
  classpath fileTree('lib')
}

jar.enabled = true

[jettyRun, jettyRunWar]*.daemon = true
stopKey = 'stoppit'
stopPort = 9451
httpPort = 8080
scanIntervalSeconds = 1
战争{
从(“”){
包括“myApp.properties”
}
}
如果要指定属性文件所在的目录,请执行以下操作:

war {
    from('<path-to-props-file>') {
        include 'myApp.properties'
    }
}
war{
从(“”){
包括“myApp.properties”
进入(“”)
}
} 
战争{
从(“”){
包括“myApp.properties”
进入(“”)
}
}
eg1:

eg2:


有关更多信息,请查看联机文档:

我通常使用一个environments文件夹,根据deploy变量从中选择给定的配置文件。例:

war {
    webInf{
        from('src/META-INF') {
            include 'persistence.xml'
            into('classes/META-INF/')
        }
    }
}
属性通过gradle传递为:

from("environments/system.${env}.properties"){
        include "system.${env}.properties"
        into 'WEB-INF'
        rename("system.${env}.properties", 'system.properties')
}

你能显示你的build.gradle吗?+1用于添加到(“”)。正是我所期待的工作与罐子太棒了!这应该是标准文档的一部分。如果没有StackOverflow,这是不可能发现的。@AxelFontain well“jar”只是另一个归档任务,因此它拥有归档任务的所有api方法。你认为Gradle用户指南中没有充分反映这一点吗?至少在看了Gradle DSL参考资料后应该是清楚的。对我来说,一点也不清楚。也许只有我一个人,但我从阅读中不知道该怎么做,事实上我还是不知道。我看不到来自的脚本块定义。有一种方法,但它没有提到如何将它与include和into结合起来。我相信这对你来说是清楚的,但对我来说不是。从你答案的得票数来看,我可能不是唯一一个……我也完全迷恋格雷德尔。我相信有一天一切都会变得清晰和简单,但现在我只是复制和粘贴这些片段,因为这些文档根本帮不上我的忙。我一定错过了一些基础知识。。。也许这是我应该学习的groovy语言?例如,DSL声明“from”是接受路径的方法。那么大括号的语法是什么呢?“包括”和“纳入”记录在哪里?多年来我从未感到如此愚蠢。是否可以将文件添加为原始名称以外的其他名称?请查看
rename
方法。
war {
    from('<path-to-props-file>') {
        include 'myApp.properties'
        into('<target-path>')
    }
}
war {
    webInf{
        from('PATH_TO_SOURCE_FOLDER') {
            include 'FILE_TO_BE_INCLUDED'
            into('TARGET_FOLDER_RELATIVE_TO_WEB_INF_DIR')
        }
    }
}
war {
    webInf{
        from('src/META-INF') {
            include 'persistence.xml'
            into('classes/META-INF/')
        }
    }
}
from("environments/system.${env}.properties"){
        include "system.${env}.properties"
        into 'WEB-INF'
        rename("system.${env}.properties", 'system.properties')
}
./gradlew buildDocker  -Penv=prod