我正在寻找一种在远程 linux 服务器的 tomcat 中部署使用 eclipse 开发的 maven 项目的方法。我知道您可以将其导出为 .war 文件并将其转储到远程服务器的 CATALINA_HOME/webapps 文件夹中。但为此,您必须先将其导出为 .war 文件,然后通过 SFTP 或 SCP 将 .war 文件复制到远程服务器。我正在寻找一种使用 eclipse 或/和配置一些 maven 设置(在 pom.xml 或 settings.xml 中)点击几下的方法。有谁知道如何做到这一点?非常感谢任何帮助。
问问题
5074 次
3 回答
1
您正在寻找的工具称为Tomcat Maven 插件
它的基本作用是使用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目标。(无论是从命令行还是从 Eclipse 使用m2Eclipse 插件。)
于 2012-05-29T12:17:02.550 回答
0
为许多不同的容器(如 Tomcat、Jetty、Glassfish 等)提供适配器的最灵活的解决方案可能是 Maven Cargo 插件。您可以在他们的主页上找到大量示例列表,因此无需在此处再次粘贴。
于 2012-05-29T12:21:22.750 回答
0
要远程部署应用程序,您需要在 tomcat 实例上配置tomcat deployer 应用程序。请注意,管理员用户的配置在 tomcat 6 和 7 之间发生了一些细微的变化。
一旦这个工作正常,Maven cargo 插件可以部署 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 插件。很新
于 2012-05-29T18:16:10.783 回答