首页 文章

Maven2:Cargo插件热部署和Jonas支持

提问于
浏览
4

我试图让我的maven项目上的Cargo插件工作,以便从针对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命令,因此我的修改不能立即使用 .

编辑:我还试图添加一个部署配置,如答案所示,但行为是相同的(即:战争被复制,但没有调用乔纳斯热部署命令,以便战争不会在乔纳斯重新加载) .

我错过了什么或者我说对了Cargo Maven插件不支持Jonas Hot Deployement吗?

提前致谢!

1 回答

  • 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>
    

    如果自动选项对您不起作用,请考虑声明战争的配置 .

相关问题