如何在不自动启动的情况下将.war部署到Tomcat7

时间:2014-05-12 19:17:18

标签: java tomcat deployment jenkins

我们有一个使用Jenkins部署到Tomcat7的自定义应用程序。该应用程序需要war中包含配置选项(服务器,数据库密码等)的属性文件,这些文件根据我们将其部署到的环境而变化。要进行这些更改,我们目前正在使用此过程:

  • 使用jenkins将.war文件从nexus服务器部署到tomcat服务器(部署解压缩war并启动应用程序,应用程序将抛出错误,因为默认属性文件中的配置不正确)。
  • 然后我们在tomcat的webapps / MyApp目录中查找属性文件,对文件执行相应的搜索/替换转换以提供正确的配置。
  • 然后我们向应用程序重新启动以重新读取属性文件中的正确配置。

这个过程非常难看,但我们不确定如何做到这一点。我们坚持这些要求:

  • 开发人员不希望依赖war / webapps目录(或通过JDNI)上下文中的属性文件进行配置,他们也不想在Nexus / SCM中使用不同版本的应用程序,每个版本都有不同的配置。他们只想在SCM中找到一个处理这些文件的地方。
  • 我们无法在SCM中存储密码,必须依靠我们的部署工具对属性文件进行转换。

我们已经尝试编辑tomcat7的server.xml并设置autoDeploy =" false",但即使使用此设置,当我们部署应用程序时,应用程序仍然会在部署后自动启动。

我们想要的是一种将应用程序部署到tomcat但不自动启动的方法,以便我们可以对参数进行编辑,然后手动向应用程序发送启动命令。我们无法关闭所有tomcat,因为在这个tomcat实例上运行了多个其他应用程序。我们还希望应用程序在启动tomcat时仍然自动启动(在意外重启的情况下),我们不希望它在部署后立即自动启动。

这可能吗?是否有其他更好的方法来处理具有可变配置的属性文件?

0 个答案:

没有答案