Я создать Gradle скрипт для того, чтобы развернуть развертываемой на контейнере с помощью cargo
плагин:Connect войны задача груза развертывания задачи
class RemoteContainer {
String name
String container
String hostname
Integer port
String username
String password
String purpose
}
def remoteContainers = [new RemoteContainer(
name: 'wildfly10',
container: 'wildfly10x',
hostname: 'localhost',
port: 9990,
username: 'user',
password: 'passwd',
purpose: 'development'
)
]
remoteContainers.each { config ->
task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
description = "Deploys WAR to remote Web Application Server: '${config.name}'."
containerId = config.container
hostname = config.hostname
port = config.port
username = config.username
password = config.password
dependsOn war
}
task "undeployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoUndeployRemote) {
description = "Deploys WAR to remote Web Application Server: '${config.name}'."
containerId = config.container
hostname = config.hostname
port = config.port
username = config.username
password = config.password
dependsOn = war
}
}
Тем не менее, я создал несколько задач для того, чтобы создать пользовательские военные файлы по своим масштабам:
task createQAWar(type: War, dependsOn: classes) {
archiveName "webapi-demo-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
webInf {
...
}
}
task createDevelopmentWar(type: War, dependsOn: classes) {
archiveName "webapi-dev-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
webInf {
...
}
}
task createTestingWar(type: War, dependsOn: classes) {
archiveName "webapi-test-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
webInf {
...
}
}
task createProductionWar(type: War, dependsOn: classes) {
archiveName "webapi-prod-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
webInf {
...
}
}
Я хотел бы связать что deployDev
задачи выбрать военный артефакт, выработанный на createDevelopmentWar
.
Я попытался установить dependsOn
свойство createDevelopmentWar
:
remoteContainers.each { config ->
task "deployDev${config.name.capitalize()}"(type: com.bmuschko.gradle.cargo.tasks.remote.CargoDeployRemote) {
description = "Deploys WAR to remote Web Application Server: '${config.name}'."
containerId = config.container
hostname = config.hostname
port = config.port
username = config.username
password = config.password
dependsOn = createDevelopmentWar <<<<<<<<<<<<<<<<<
}
}
Тем не менее, Gradle это становится мне это сообщение:
- Что пошло не так: Возникла проблема оценки корневого проекта 'WebAPI. Невозможно привести объект «задание„: createDevelopmentWar“» с классом «org.gradle.api.tasks.bundling.War_Decorated» в классе «java.lang.Iterable »
Я также попытался установить dependsOn
- war
Задача, тем не менее сообщение одинаково.
EDIT
Однажды, я изменил синтаксис dependsOn = [createDevelopmentWar]
, я столкнулся с другой проблемы:
Это становится мне это сообщение:
не было выполнено для task ': deployDevWildfly10'. Deployable D: \ Projects \ живой \ платформа \ WebAPI \ построить \ LIBS \ WebAPI-DEV-89c157a-dirty.war не существует
Он пытается получить артефакт из build\libs\
. Тем не менее, война артефакт был создан в destinationDir = file("$buildDir/dist")
:
task createDevelopmentWar(type: War, dependsOn: classes) {
archiveName "webapi-dev-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
webInf {
...
}
}
Как я мог установить груз забирает артефакт по сравнению с ранее war type task(createDevelopmentWar)
информации исполнения?
Спасибо @ Vampire. Я получаю еще одно сообщение. Он собирает артефакт из неправильной папки. Я редактировал сообщение. Есть идеи? – Jordi
Следуйте за документированием подключаемого модуля.По умолчанию он автоматически обнаруживает развертываемые средства из прикладной задачи 'war' или' ear', но в вашем случае это неприменимо и поэтому не находит файл, который он пытается развернуть. Определите развертывание с вашей собственной войной, и все будет в порядке. Если плагин разработан правильно и вы используете файл (createDevelopmentWar) в качестве файла в развертываемом закрытии, вы даже можете не указывать 'dependOn' явно, но это должно быть сделано неявно. – Vampire
Я могу понять, что вы имеете в виду. Тем не менее, я не совсем понимаю, как изменить сценарий (я новичок, использующий град). Не могли бы вы предоставить мне какой-нибудь код помощи, показывающий, как его получить? – Jordi