部署到tomcat7而不重新启动服务器

时间:2015-02-03 17:07:33

标签: java maven tomcat amazon-ec2 application-server

我正在创建一个maven3tomcat7Spring4 java网络应用。我将我的应用程序部署在Amazon AWS Ec2实例上。我目前的工作流程如下

  1. 在我的本地环境中进行更改。
  2. git push我对bitbucket帐户的更改。
  3. ssh进入我的Ec2实例。
  4. git pull我对bitbucket的更改。
  5. kill -9当前运行在Ec2上的tomcat进程
  6. 在我的Ec2上运行mvn clean tomcat7:run以重新启动服务器,以便应用更改。
  7. 服务器在端口8080上运行,我已经设置了iptables以将端口80转发到8080.这一切都运行良好。

    但是,在部署tomcat / maven应用程序时,我是一个菜鸟。所以这是我的问题:

    这是运行我的Java Web应用程序的最佳方式吗? mvn installmvn deploy是否应该成为某个过程的一部分?

    在很多教程中,我看到对server.xml的引用来配置tomcat,据我所知,我没有server.xml文件,因为tomcat是由maven使用tomcat7插件完全配置的。这是一个问题吗?

    最后,如何在不重启tomcat的情况下对我的实时服务器(Ec2实例)进行更改?当我的应用程序是实时服务器停机时间是不可接受的。

    我只是在寻找关于这个过程如何在现实世界中运作的一般解释性答案,所以我可以知道我是否正确地做到了。

    非常感谢!!

2 个答案:

答案 0 :(得分:0)

您仍然可以在〜/ .m2 / .settings.xml文件夹中配置tomcat7的设置,并添加一些设置,例如:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>TomcatServer</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
</settings>

我不知道如何从maven tomcat7:run命令进行实时更改,但是您可以通过包管理器为tomcat安装本机版本,因此您只需将.war放在{{1文件夹(此路径可能会在某些Linux发行版中更改)。然后,您可以随时删除和删除新的.war而无需重新启动tomcat7服务。

答案 1 :(得分:0)

您可以通过API在tomcat中部署。

  1. 编辑%TOMCAT_HOME%/ conf / tomcat_users.xml您的文件应该是this

  2. 编辑%USER_HOME%/。m2 / settings.xml您的文件应该如this

  3. 在您的pom.xml中添加以下plugin

  4. 因此,在您的AWS实例中,您需要运行一个tomcat服务器。