Как добавить файл.properties в мою WAR, используя gradle?
WAR
- META-INF
- WEB-INF
- classes
- META-INF
- myApp.properties <-- Needs added
Как добавить файл.properties в мою WAR, используя gradle? Файл был позже введен в проект, но не добавлен?
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
4 ответа
Решение
Примерно так должно работать:
war {
from('<path-to-props-file>') {
include 'myApp.properties'
}
}
Если вы хотите указать, в каком каталоге вы хотите расположить файл свойств:
war {
from('<path-to-props-file>') {
include 'myApp.properties'
into('<targetDir>')
}
}
war {
from('<path-to-props-file>') {
include 'myApp.properties'
into('<target-path>')
}
}
Например, 1:
war {
webInf{
from('PATH_TO_SOURCE_FOLDER') {
include 'FILE_TO_BE_INCLUDED'
into('TARGET_FOLDER_RELATIVE_TO_WEB_INF_DIR')
}
}
}
ЭГ2:
war {
webInf{
from('src/META-INF') {
include 'persistence.xml'
into('classes/META-INF/')
}
}
}
Для получения дополнительной информации обратитесь к онлайн-документации: Глава 26. Плагин войны
Я обычно использую папку сред, из которой я выбираю данный файл конфигурации на основе переменной deploy. Напр.:
from("environments/system.${env}.properties"){
include "system.${env}.properties"
into 'WEB-INF'
rename("system.${env}.properties", 'system.properties')
}
свойство передается через gradle как:
./gradlew buildDocker -Penv=prod