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

sta*_*low 25 gradle

WAR
   - META-INF
   - WEB-INF
       - classes
           - META-INF
               - myApp.properties <-- Needs added
Run Code Online (Sandbox Code Playgroud)

如何使用gradle将.properties文件添加到WAR中?该文件后来被引入该项目但没有添加?

的build.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 = '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
Run Code Online (Sandbox Code Playgroud)

Ren*_*hke 44

war {
    from('<path-to-props-file>') {
        include 'myApp.properties'
        into('<target-path>')
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1用于添加到('<target-path>').正是我在寻找什么 (4认同)
  • 对我来说,根本不清楚.也许只是我,但我不知道怎么做才能阅读http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.bundling.Jar.html然而真相被告知我还是没有.我看不到来自的脚本块定义.有一种方法,但它没有提到任何关于如何将它与include和into结合起来的方法.我相信你很清楚,但对我来说却不是.从你答案的赞成票数量来看,我可能并不孤单...... (2认同)

Ben*_*hko 31

这样的事情应该有效:

war {
    from('<path-to-props-file>') {
        include 'myApp.properties'
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要指定属性文件所在的目录:

war { 
    from('<path-to-props-file>') { 
        include 'myApp.properties' 
        into('<targetDir>') 
    }
} 
Run Code Online (Sandbox Code Playgroud)


小智 6

点拨:

war {
    webInf{
        from('PATH_TO_SOURCE_FOLDER') {
            include 'FILE_TO_BE_INCLUDED'
            into('TARGET_FOLDER_RELATIVE_TO_WEB_INF_DIR')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

EG2:

war {
    webInf{
        from('src/META-INF') {
            include 'persistence.xml'
            into('classes/META-INF/')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看在线文档:第26章.战争插件