Maven2:Cargo插件热部署&乔纳斯支持

时间:2009-09-08 14:38:53

标签: maven-2 cargo maven-cargo

我正在努力让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?

提前致谢!

1 个答案:

答案 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>

如果自动选项不适合您,请考虑为您的战争声明配置。