我正在尝试编写一个Gradle任务,它将生成的war文件复制到我的本地tomcat实例:
这不起作用,我不知道如何调试它:
task deploylocal() << {
println "Copy from ${buildDir}\\libs into ${tomcatHome}/webapps"
copy{
from "${buildDir}\\libs"
into "${tomcatHome}/webapps"
include '*.war'
}
}
Run Code Online (Sandbox Code Playgroud)
关于下一步该怎么做的任何想法?
Uri*_*ter 50
WAR任务知道它生成的工件.
task deployToTomcat(type: Copy) {
from war.archivePath
into "${tomcatHome}/webapps"
}
Run Code Online (Sandbox Code Playgroud)
Pav*_*vel 14
我完成了这个:
task deploy (dependsOn: war){
copy {
from "build/libs"
into "C:/dev/jetty-distribution-9.1.4.v20140401/webapps"
include "*.war"
}
}
Run Code Online (Sandbox Code Playgroud)
像这样运行它:
gradle deploy
Run Code Online (Sandbox Code Playgroud)
小智 12
你当然可以使用tomcat插件.我的设置阻止我使用/修改开箱即用的war和tomcat选项.
我个人喜欢以下风味(从我的build.gradle复制).
tomcat_home='tomcat_location'
tomcat_bin=tomcat_home + '/bin'
tomcat_start=tomcat_bin + '/startup.sh'
tomcat_stop=tomcat_bin + '/shutdown.sh'
tomcat_webapps = tomcat_home + '/webapps'
task tom << {
if (project.hasProperty('start')) {
startTom()
} else if (project.hasProperty('stop')) {
stopTom()
} else if (project.hasProperty('deployNstart')) {
stopTom()
webappsCopy()
startTom()
} else {
throw new RuntimeException('unrecognized option')
}
}
def stopTom() {
executeCmd(tomcat_stop)
}
def startTom() {
executeCmd(tomcat_start)
}
def executeCmd(command) {
proc = command.execute()
proc.waitFor()
}
def webappsCopy() {
copy {
from 'war file location' // could be exploded or war itself
into tomcat_webapps
}
}
Run Code Online (Sandbox Code Playgroud)
- 从命令行调用"tom"任务中包含的各种选项 -
$ gradle tom -Pstart
$ gradle tom -Pstop
$ gradle tom -PdeployNstart
Run Code Online (Sandbox Code Playgroud)
随着我添加更多与Tomcat相关的命令/选项,这可能会进一步增长.几个指针:
这个限量版现在适合我:-)
归档时间: |
|
查看次数: |
40268 次 |
最近记录: |