通过cli部署到远程Glassfish实例

我试图通过命令行自动将我们的
Java EE应用程序从我们的构建服务器(Jenkins)部署到远程Glassfish服务器.

目前我正在使用asadmin并且它工作正常,但是这个选项要求我在构建服务器上安装Glassfish – 我想避免,因为我不需要它.构建服务器实际上只运行构建和部署,所以我希望尽可能保持服务器“干净”.

我找不到任何只安装asadmin工具的下载,而且我只尝试手动复制所需的文件失败,因为某些* .jars存在一些我不知道的依赖,所以除非我总是失败将整个glassfish安装文件夹复制到构建服务器.

所以我的问题是:
有没有人知道如何在不安装整个Glassfish服务器的情况下只安装asadmin工具?
或者,我也很乐意使用任何其他命令行工具,只要它们允许我使用安全通信部署到远程Glassfish实例.

最佳答案 在做了一些研究后,我放弃了尝试安装asadmin而没有完整的Glassfish安装,而是使用了Glassfish的REST管理界面.

我现在使用CURL在一个简单的批处理文件中工作:

curl.exe ^
    --user glassfish_username:glassfish_password ^
    --insecure ^
    -H "Accept: application/json" ^
    -H "X-Requested-By: dummy" ^
    -X POST ^
    -F id=@yourfile.war ^
    -F contextroot=yourcontextroot ^
    -F force=true ^
    https://yourservername:4848/management/domain/applications/application/

一旦你知道你需要做什么,REST API就会非常直接,但以防其他人需要这个,这里有几点要点:

> – 通过CURL,需要使用–insecure来允许自签名和不受信任的SSL证书
>必须设置“Accept”和“X-Requested-By”的标题属性,否则Glassfish不处理请求,只返回一个空白文档作为ansower.不知道为什么,但设置这些参数使其工作.
>战争的内容
文件作为POST上的“id”参数传递
> URL必须完全如上面的剪辑所示,即不要替换“域”
使用您的域名或“应用程序”与您的应用程序名称.这是实际的REST接口端点.无需在任何地方指定域/应用程序名称.

点赞