是否有人知道gradle“热部署”插件(或中间件作为shell脚本)将源文件夹中的文件直接复制到tomcat的webapps目录中的项目文件夹(不是gretty或{{3}之类的嵌入式服务器};版本7,环境无关)?
最后,我想实现一个智能开发工作流程,以便在代码制作过程中(重新,取消)部署java Web应用程序。我正在寻找类似gradle tomcat plugin任务的内容。
场景:在WEB-INF / lib文件夹中包含自包含的可执行jar文件的Java Web应用程序。
如果更改静态源(例如JSP,JS等),则不需要重新启动tomcat。
解决方案
我想到了我们在办公室的工作实践。我的同事和我,我们在Windows机器上编程,我们在IDEA中使用键映射配置来启动和停止我们本地安装的Tomcat。
对我来说最简单的方法是定义一个用户相关的CATALINA_HOME系统环境变量,该变量引用Tomcat服务器的路径。
CATALINA_HOME = C:\Program Files\apache-tomcat-7.0.56
我定义了一个部署任务,它将已编译的war文件复制到webapps文件夹中((重新)通过IEDA手动启动Tomcat)。
task deploy(type: Copy) {
def WEBAPPS_HOME = System.getenv()['CATALINA_HOME'] + '/webapps'
from 'build/libs/app.war' into WEBAPPS_HOME
dependsOn war
}
没有人需要更改build.gradle文件中的Tomcat路径,或者没有其他user.config文件被git忽略。 但我不喜欢手动Tomcat处理,在Mac上使用环境变量是不寻常的。
因此,我决定在嵌入式Tomcat服务器上搜索grunt watch进行本地开发。它是由Gradle cargo plugin的Benjamin Muschko(Gradleware工程师)推荐的,他描述了How to use local tomcat?...之间的差异。
此插件的设置非常简单。我不需要解释。
没有人需要安装自己的Tomcat,每个人都使用相同的版本服务器。
对于我们的nigthly构建,我使用Gradle包装器的强大功能作为Jenkins任务配置。 我执行了一个wintods批处理命令。
cd "%WORKSPACE%\app"
gradlew.bat clean build
答案 0 :(得分:-2)