shell - 使用 jenkins 执行 shell 脚本部署 ear
问题描述
我正在尝试使用 Jenkins 将 .ear 文件部署到我的测试环境。
Web 应用程序在 Bea Weblogic 9.2 上运行,所以我虽然最简单的方法是在构建后步骤中执行以下脚本(添加构建后步骤 ---> 执行 shell):
java weblogic.Deployer -adminurl t3://22.33.44.55:8001 -username myUserName -password myPassword -deploy -name earfilename -targets AdminServer -source C:\apps\sample.ear
假设这会起作用,我相信你会同意我的看法,因为 -source 指向我本地的耳朵,所以这没有意义。我想部署刚刚从 jenkins 构建的 ear 文件(这是 SVN 提交的结果)。
所以我的最后一个问题是:我可以在脚本中放入任何环境变量来获取 -source(刚刚构建的耳朵的路径)和 -name(工件的名称随每个版本而变化)吗?
提前致谢
解决方案
source 参数不需要带有文件名,它应该是 C:\apps\ 并将 name 作为应用程序名称。您还可以添加一个线性命令以在创建新版本之前删除已经存在的应用程序,以便应用程序文件夹只有一个文件。如果 ear 文件位于远程服务器中,请在命令中使用 -remote 选项。
例如
java -cp $CLASSPATH weblogic.Deployer -adminurl ADMIN_URL:PORT -username weblogic -password weblogic1! -distribute app.war -name appname -targets AdminServer -debug -usenonexclusivelock
您还可以使用 find 命令检查 ear 文件的名称,将其存储在变量中并在命令中使用该变量。
推荐阅读
- java - 是否可以保存引用未保存代理的实体?
- ios - Swift 中的超级前缀
- here-api - 检查区域是否被交通流量覆盖
- python-3.x - 如何在windows10上以安静模式安装python解释器?
- node.js - 导入“uuid”时无法在模块外使用导入语句
- java - 在我的活动中执行定期工作请求时,工作管理器向 Worker 类发送错误的输入数据。如何解决?
- python - 多文件错误处理的最佳实践是什么?
- javascript - 我正在尝试获取嵌入的内容
- reactjs - 反应功能组件调用子组件方法
- swiftui - 如何在 SwiftUI 中创建一个获取 View 并返回自定义结果的函数?