在远程linux服务器的tomcat中部署eclipse maven项目

时间:2012-05-29 08:47:52

标签: linux eclipse maven web-deployment-project remote-server

我正在寻找一种方法来部署在远程linux服务器的tomcat中使用eclipse开发的maven项目。我知道您可以将其导出为.war文件并将其转储到远程服务器的CATALINA_HOME / webapps文件夹中。但为此,您必须先将其导出到.war文件,然后通过SFTP或SCP将.war文件复制到远程服务器。我正在寻找一种方法,只需点击几下使用eclipse或/并配置一些maven设置(在pom.xml或settings.xml中)。有谁知道如何做到这一点?任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:1)

您要使用的工具名为Tomcat Maven Plugin

它基本上是使用 Tomcat管理器应用程序的API,您必须确保将其部署在您正在使用的Tomcat实例上。默认情况下,Tomcat管理器应位于以下位置:

http://ip_of_your_linux_server:8080/manager/html

如果不是,请使用以下命令安装:

sudo apt-get install tomcat6-admin

您可以按如下方式配置 Tomcat 实例的位置:

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <configuration>
                <url>http://www.mydomain.com:1234/mymanager</url>
        </configuration>
</plugin>

然后运行maven mvn tomcat:deploy 目标。 (使用 m2Eclipse插件从Eclipse的命令行开始。)

请参阅插件的configurationdeployment页面以获取更详细的信息。

答案 1 :(得分:0)

对于许多不同容器(如Tomcat,Jetty,Glassfish等)的适配器,最灵活的解决方案可能是Maven Cargo插件。您可以找到an extensive list of examples on their homepage,因此无需再次粘贴此处。

答案 2 :(得分:0)

要远程部署应用程序,您需要在tomcat实例上配置tomcat deployer app。请注意,管理员用户的配置在tomcat 6和7之间经历了一些微妙的变化。

一旦这个工作,Maven货运插件可以按如下方式部署war文件:

<plugin>    
    <groupId>org.codehaus.cargo</groupId>    
    <artifactId>cargo-maven2-plugin</artifactId>    
    <version>1.2.1</version>    
    <executions>    
        <execution>    
            <id>tomcat-deploy</id>    
            <phase>package</phase>    
            <configuration>    
                <container>    
                    <containerId>tomcat7x</containerId>    
                    <type>remote</type>    
                </container>    
                <configuration>    
                    <type>runtime</type>    
                    <properties>    
                        <cargo.remote.uri>${tomcat.manager.url}</cargo.remote.uri>    
                        <cargo.remote.username>${tomcat.manager.user}</cargo.remote.username>
                        <cargo.remote.password>${tomcat.manager.pass}</cargo.remote.password>
                    </properties>
                </configuration>
                <deployer>
                    <deployables>
                        <deployable>
                           <groupId>${project.groupId}</groupId>
                            <artifactId>${project.artifactId}</artifactId>
                            <type>war</type>
                            <properties>
                                <context>${project.artifactId}</context>
                            </properties>
                        </deployable>
                    </deployables>
                </deployer>
            </configuration>
            <goals>
                <goal>deploy</goal>
            </goals>
        </execution>
    </executions>
</plugin>      

附加说明

  • Cargo插件支持几种不同的容器,问题是doco很难解释。
  • 我没有使用过Maven插件。这是非常新的