【问题标题】:Deploy bundle in Servicemix from Jenkins从 Jenkins 在 Servicemix 中部署包
【发布时间】:2021-03-31 19:08:25
【问题描述】:

我正在尝试在 Jenkins 的 Servicemix 中部署一个包。用例是,当我在本地进行任何更改时,Jenkins 会构建它并将其部署为 servicemix 中的捆绑包(在云上运行)。

我可以在本地部署 servicemix 中的捆绑包,这工作正常,但我现在正试图找出一种方法将其从 jenkins 部署到远程 Servicemix

有人试过吗?

【问题讨论】:

    标签: jenkins jenkins-plugins apache-servicemix


    【解决方案1】:

    如果您安装了 jolokia 捆绑包,则可以通过 Rest 调用使用 JMX。

    {
    "type":"EXEC",
    "mbean":"org.apache.karaf:type=bundle,name=root",
    "operation":"install(java.lang.String,boolean)",
    "arguments":    ["mvn:${project.groupId}/${project.artifactId}/${project.version}", true]
    }
    

    为了使用 jenkins 的这个,我开发了一个小的 maven plugin,可以像下面这样使用:

    <plugin>
        <groupId>de.nierbeck.javaland.tools</groupId>
        <artifactId>karaf-deployer-maven-plugin</artifactId>
        <configuration>
            <url>http://192.168.59.103:8181/jolokia/</url>
            <jsonInstall>
    {
    "type":"EXEC",
    "mbean":"org.apache.karaf:type=bundle,name=root",
    "operation":"install(java.lang.String,boolean)",
    "arguments":    ["mvn:${project.groupId}/${project.artifactId}/${project.version}", true]
    }
            </jsonInstall>
            <user>karaf</user>
            <password>karaf</password>
           <skip>false</skip>
        </configuration>
    </plugin> 
    

    【讨论】:

      【解决方案2】:

      您的 Jenkins 是否可以访问 ServiceMix 的 ssh 控制台(默认端口:8101),如果可以,我建议通过此通道发送命令。

      另一种可能性是使用 smx 客户端 ( ${smx_home}/bin/client ) 并上传要执行的脚本,然后通过 Jenkins 的 sh 执行客户端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-30
        • 2012-08-11
        • 1970-01-01
        • 2011-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多