我正在努力让Cargo插件在我的maven项目中运行,以便从针对Jonas服务器的战争热部署中受益。
官方文档并不清楚支持什么和不支持什么(例如,您可以找到:http://cargo.codehaus.org/Hot+Deployment,还有http://cargo.codehaus.org/JOnAS+4.x)。
无论如何,对于我的战争POM,我有以下配置:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0</version>
<configuration>
<container>
<containerId>jonas4x</containerId>
<home>C:\JOnAS-4.8.4\nt\bin</home>
</container>
<configuration>
<type>existing</type>
<home>C:\JOnAS-4.8.4</home>
</configuration>
</configuration>
</plugin>
当我跑步时
mvn cargo:deploy
在我的项目中,战争被复制到Jonas webapps文件夹,但没有热部署。该文件仅被复制,但未调用热部署Jonas命令,因此我的修改不能立即使用。
编辑:我还尝试按照答案的建议添加部署者配置,但行为是相同的(即:复制war,但不调用Jonas热部署命令,以便在Jonas中不重新加载战争)。我是否遗漏了某些内容,或者我说Cargo Maven插件不支持Jonas Hot Deployement?
提前致谢!
答案 0 :(得分:1)
deploying to a running container上的货物页面链接到table,其中列出了为该容器引入热部署的版本。根据该表,从版本1.0(您正在使用)支持JOnAS 4.x,因此它应该可以工作。
在该页面上,它还有一些配置插件以进行部署的准则,我试图在下面解释它们。
从配置中的home
元素开始,我假设您正在尝试本地部署。正在运行的容器页面中的配置意味着热部署应该在此行中自动进行:
输入mvn cargo:deploy。请注意,我们没有指定元素也没有指定元素。这是因为该插件足够智能,可以为您创建默认实例。很酷,不是吗?
然而,早期的配置块表明您应该配置deployer
部分以使货物插件知道要部署的战争。部署者的配置如下:
<deployer>
<type>local</type>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>optional root context</context>
</properties>
<pingURL>optional url to ping to know if deployable is done or not</pingURL>
<pingTimeout>optional timeout to ping (default 20000 milliseconds)</pingTimeout>
</deployable>
</deployables>
</deployer>
如果自动选项不适合您,请考虑为您的战争声明配置。