在eclipse里创建的web工程,可以简单地发布到eclipse管理的容器里,开发很方便
不过对于多maven工程聚合的项目,就没有办法这样简单地“一键发布”了,为了达到同样的目的,可以使用cargo插件
一、配置pluginGroup,以支持前缀调用
首先cargo插件不是官方的,所以需要在settings.xml里配置pluginGroup
<pluginGroups>
<pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>
二、为什么提示启动成功,但是实际上无法访问
我一开始是按照《Maven实战》中的例子来配的,但是这本书版本比较老,用的是cargo-maven2-plugin1.0.0,所以没有cargo:run这个goal,只有cargo:start
但是cargo:start需要额外配置一个<wait>的参数,否则的话虽然cargo:start可以把容器启动,但是在maven生命周期跑完之后,容器也就立刻关闭了
见官方说明:
Note: A container that's started with cargo:start will automatically shut down as soon as the parent Maven instance quits (i.e., you see a BUILD SUCCESSFUL or BUILD FAILED message). If you want to start a container and perform manual testing, see our next goal cargo:run.
所以昨天我试了半天,提示说容器启动成功,但是实际上根本看不见容器的进程,十分蛋疼。
增加<wait>true</wait>的参数,可以解决这个问题,容器启动之后,会等待用户按下Ctrl + C,不会立刻自动关闭。但是这个方法也不好,因为在新版本的cargo插件中,<wait>是一个deprecated的参数,即将被删除
见官方说明:
Important: This parameter has been deprecated and will be removed soon. If you want to do manual testing, please use the cargo:run MOJO.
三、正确的做法
以下是pom的配置
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<home>D:\apache-tomcat-7.0.29</home>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/tomcat7.0.29</home>
<properties>
<cargo.jvmargs>
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
</cargo.jvmargs>
</properties>
</configuration>
</configuration>
</plugin>
这里关键是cargo的版本是1.2.3,这个版本有了cargo:run的goal
<container> --> <containerId>是目标容器的标识,这里不允许自定义,必须是cargo规定的几个值,比如tomcat6x、tomcat7x、jboss71x等,完整的列表见:http://cargo.codehaus.org
<container> --> <home>是本地容器的安装路径
<configuration> --> <type>可以选择standalone和existing两种模式,我感觉standalone比较好一点
<configuration> --> <home>是容器引入工程后保存的路径,和上面的<home>是不同的
如上配置之后,输入mvn clean package cargo:run,则以debug模式启动了容器
四、在eclipse中调试
直接上图:
要结束调试时,在Perspective-->Debug中,点一下红色方块即可
- 大小: 69.5 KB
- 大小: 87.7 KB
- 大小: 25.5 KB
分享到:
相关推荐
NULL 博文链接:https://jdonee.iteye.com/blog/774387
maven cargo插件远程部署web项目的简单案例,留作笔记,也分享给大家了!希望有所帮助
maven下使用Cargo实现自动化部署到tomcat7中cargo:deploy
尚硅谷学习笔记+代码,Maven 教程 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具 ...部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上
使用cargo-maven2-plugin插件配置Tomcat本地自动发布 .
TeamCity Rust插件 TeamCity Rust插件为编程语言带来了构建基础结构支持。特征它为Rust项目提供以下功能: 通过安装Rust工具链货运指挥员货物测试记者结构化构建日志侦听器自动发现构建步骤在Docker中运行步骤在...
cargo实现自动化部署远程jetty容器(非安全模式)
cargo jetty-7-and-onwards-deployer-1.6.5,自动上传部署
:cross_mark:cargo-deny cargo-deny是一个货运插件,用于减少依赖项。 有关详细文档,请参见the。 为了以CI作为GitHub Action在CI上运行,:cross_mark:cargo-deny cargo-deny是一个用于简化依赖关系的cargo插件。 ...
货物捆绑 将Rust可执行文件包装在特定于OS的应用程序捆绑包中关于cargo-bundle是一种工具,用于为使用cargo构建的GUI可执行文件生成安装程序或应用程序捆绑包。 它可以为Mac OS X和iOS创建.app捆绑包,为Linux创建....
Cargo 会下载您 Rust 的包依赖项,编译您的包,生成可分发的包,并将 它们上传到crates.io - Rust 社区的包注册表。 这是官方的翻译版,并不保证翻译的完整准确,希望能想学习rust的朋友一点儿帮助。
3.启动一个命令窗口,使用cargo make build构建项目 4.使用cargo make serve启动项目 5.启动另外一个命令窗口,使用cargo make watch跟踪文件变动,自动构建项目 6. 打开浏览器,地址栏输入:http://127.0.0.1:8000...
cargo-hdk 用于根据Houdini开发套件(HDK)构建Houdini...用法要构建位于$CARGO_MANIFEST_DIR/hdk的HDK插件,只需运行cargo hdk对于发行版使用cargo hdk --release要使用Ninja等其他CMake生成器,请使用--cmake选项c
:wrapped_gift: 货轮 要在CI或其他“干净”环境中使用cargo fetch替代方法,您需要使用必要的包装箱快速启动以编译/测试项目等。为什么? 您在诸如之类的云提供商内部运行许多CI作业,并且想要快速获取货物注册表和...
cargo-toolkit使用Webpack 5和React Native CLI的插件系统,使您可以使用Webpack捆绑应用程序,并可以轻松地从Metro切换。 特征 Webpack生态系统,插件和实用程序 构建适用于iOS,Android和树外平台的产品包 ...
MavenWildflyActivemq 演示Wildfly maven插件,Wildfly的Cargo插件和Activemq maven插件的示例项目 运行:mvn全新安装
实际上还不是货物插件。 现在,这是一个概念证明。 我想玩这样的工具,看看它是否可行。 我并不打算积极开发它。 如果有人想使用它或类似的工具,请继续我的祝福。例子来自winit示例,一个执行大量特定于平台的FFI...
配置完板条箱后,运行cargo rpm build来构建项目的发布目标并将其打包到RPM中。 如果遇到错误,则可能需要查看有关为什么rpmbuild失败的更多信息。 运行cargo rpm build -v以启用详细模式。 完成的.rpm文件将放置...
领域驱动设计cargo案例
cargo-outdated, 用于显示 Rust 依赖项什么时候过期的cargo子命令 货物过期 Linux: 用于显示 Rust 依赖项什么时候过期的cargo子命令cargo-outdated 用于显示依赖项是否有更新的版本。工作原理cargo-outdated的功能很...