5

我试图让 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 命令,因此我的修改无法立即使用。

编辑:我还尝试按照答案中的建议添加部署器配置,但行为是相同的(即:复制了战争,但未调用 Jonas 热部署命令,因此不会在 Jonas 中重新加载战争)。

我是否遗漏了什么,或者我说 Cargo Maven 插件不支持 Jonas Hot Deployement 是对的?

提前致谢!

4

1 回答 1

1

部署到正在运行的容器的货物页面链接到一个表格,该表格列出了为该容器引入了热部署的版本。根据表格,JOnAS 4.x 受 1.0 版(您正在使用)的支持,因此它应该可以工作。

在该页面上,它还提供了一些配置插件以进行部署的指南,我试图在下面解释它们。

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>

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

于 2009-09-13T13:09:58.987 回答