yp1234 发表于 2017-2-27 12:43:28

怎么将jenkins打包后的war自动部署到jetty上?

1,使用maven的cargo插件,实现远程部署
  (官网描述地址:https://codehaus-cargo.github.io/cargo/Jetty+Remote+Deployer.html)
  Maven中添加配置文件:

  Type: 可选参数有remote(远程部署的模式)还有:standalone,existing两种模式,可以参阅(
  http://blog.csdn.net/steveguoshao/article/details/38469713
  )
  Cargo.hostname: 表示要远程的地址
  Cargo.Servlet.port: 表示要远程的端口号
  Ps: 通过远程实现自动化部署的时候必须在jetty中设置相应的权限
  Cargo.remote.username: 为具有该权限的用户名
  Cargo.remote.password: 相应的密码
2,下载远程部署的代理的war包
  Ps:因为jetty并没有远程部署的功能,所以我们需要一个东西可以接收我们项目的war包,所以就出现了这个代理的角色,其实它也是个标准的webApp。

  支持jetty7及以上版本的war的下载地址(
  http://repo1.maven.org/maven2/org/codehaus/cargo/cargo-jetty-7-and-onwards-deployer/1.4.18/cargo-jetty-7-and-onwards-deployer-1.4.18.war   )
  修改 war 包中 WEB-INF 中web.xml 文件 将注释放开:结果为:


3,为jetty 添加访问权限
  (官网介绍的地址:
  http://www.eclipse.org/jetty/documentation/current/configuring-security-authentication.html#security-realms
  )
  3.1:在 jetty9.2/etc/jetty.xml 文件中添加如下配置:

  3.2: 在jetty9.2/etc 中创建 realm.properties 文件,文件内容为
  userName: password,manager
  userName: 为步骤一的cargo.remote.username 中的值
  Password:为步骤一的cargo.remote.password 中的值
  Manager: 为当前角色所拥有的权限(要和步骤二中的role-name 的值一致
  )
  至此:整个过程就算完成了,将jetty 运行起来,通过访问
  http://127.0.0.1:8080/cargo-jetty-deployer/
  验证是否配置正确
  1,让填写用户名和密码
  2,验证用户名和密码验证成功后会显示Command / is unknown
  说明远程部署到jetty上成功了。
页: [1]
查看完整版本: 怎么将jenkins打包后的war自动部署到jetty上?