stackoverflow
stackoverflow

Reputation: 19444

How do I add a .properties file into my WAR using gradle?

WAR
   - META-INF
   - WEB-INF
       - classes
           - META-INF
               - myApp.properties <-- Needs added

How do I add a .properties file into my WAR using gradle? The file was later introduced into the project but doesn't get added?

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

Upvotes: 29

Views: 32298

Answers (4)

chico
chico

Reputation: 11

I normally use an environments folder from which I pick a given configuration file based on the deploy variable. Ex.:

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

the property is passed through gradle as:

./gradlew buildDocker  -Penv=prod

Upvotes: 1

Benjamin Muschko
Benjamin Muschko

Reputation: 33436

Something like this should work:

war {
    from('<path-to-props-file>') {
        include 'myApp.properties'
    }
}

If you want to specify which directory you want the properties file to be located in:

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

Upvotes: 32

Marcelo C.
Marcelo C.

Reputation: 3972

eg1:

war {
    webInf{
        from('PATH_TO_SOURCE_FOLDER') {
            include 'FILE_TO_BE_INCLUDED'
            into('TARGET_FOLDER_RELATIVE_TO_WEB_INF_DIR')
        }
    }
}

eg2:

war {
    webInf{
        from('src/META-INF') {
            include 'persistence.xml'
            into('classes/META-INF/')
        }
    }
}

For more information check the online documentation: Chapter 26. The War Plugin

Upvotes: 6

Rene Groeschke
Rene Groeschke

Reputation: 28653

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

Upvotes: 51

Related Questions