我正在使用 Jenkins Deploy to container用于将我的项目部署到本地 tomcat 的插件。根据 Jenkins 控制台输出,插件重新部署、取消部署,然后作为其流程的一部分进行部署。在取消部署期间,tomcat 删除 $CATALINA_BASE/conf/[enginename]/[hostname]/[myprojectname].xml 上下文文件(又名 $CATALINA_BASE/conf/Catalina/localhost/[myprojectname].xml),原因如下所述 here .
据我所知,该问题的答案在使用部署插件时不适用。
我正在使用这个文件来配置资源并将它放在/META-INF/context.xml 中是不可行的,因为我需要能够部署到不同的上下文。
我尝试将文件设置为只读,这会导致 Jenkins 进程失败,因为它无法删除文件。在 server.xml 中将 autoDeployment 设置为 false 也无济于事。
这个问题不同于this one与他的情况一样,文件被重命名而我的被删除。
如何阻止插件删除上下文文件?如果不能,可以使用什么替代方法?
最佳答案
我一直在我的 jenkins 管道作业中使用 curl 语句退出一段时间,因为我们的生产环境中有负载平衡器,所以我们需要多次启动停止,而 Deploy 插件不支持。因此,我们使用 curl 语句来部署 tomcat。你可以试一试:
curl --upload-file <file_path> -u <username>:<password> "http://<URL>:<port>/manager/text/deploy?path=/<context>&update=true"
这里的用户名和密码是tomcat脚本管理器的凭据。 update = true 负责重新部署。我不认为它会删除 context.xml
关于java - 使用 Jenkins Deploy 插件部署到 Tomcat 而无需删除上下文 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50931964/