TA的每日心情 | 开心 2018-4-8 22:14 |
---|
签到天数: 1 天 [LV.1]初学乍练
普通会员
- 积分
- 5517
|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 Jenkins权威指南》
* m7 k# v7 e% }( i# v# }- K9 ojava电子书推荐理由:通过本书你将学到以下内容。 学习如何安装、配置和安全加固你的Jenkins服务器 组织管理和监控通用的构建作业 集成自动化测试来验证构建,并建立代码质量报告 建立有效的团队通知策略和技术 配置构建管道、参数化的作业、矩阵构建和其他高级作业 管理多个Jenkins服务器来运行分布式构建 完成自动化部署和持续交付
+ A7 I/ Q" W+ r
9 u% ]. s# ]! A4 W作者:John Ferguson Smart 约翰.弗格森.斯马特 郝树伟 于振苓 熊熠! r8 j; a. v+ L* m- X. v2 o
出版社:电子工业出版社' ]: Y& v. z; P# x
出版时间:2016-10-01 . z1 N" T% J# o" i9 o% j9 }
书籍价格:70.30元
" w1 h F: F" `2 M0 a8 D" y
1 T2 N/ f9 ]" Y% E
# r4 [) g5 k, g( n" O9 Kjava电子书目录: v M& W9 @" v
第1 章 Jenkins 简介 19 B, N+ l* Z* k) M' l
简介 1& F- p: }7 p t' q, b2 o
持续集成基础 1
) c$ R4 A+ [4 r' bJenkins 简介(née Hudson) 3, n" }$ ]' i/ N
从Hudson 到Jenkins——一个简短的故事 3$ w: M! R. H0 L9 ^# V- O
应该使用Jenkins 还是Hudson 4 s! }) [( G1 E( h& _
引进持续集成到你的公司 55 c2 m5 I( `9 C9 _6 E- [6 n
阶段1——无构建服务器 5. r7 i$ H3 {# u! g2 i
阶段2——夜间构建 64 M* i" r" A9 z3 j& D3 O6 @
阶段3——夜间构建加自动化测试 6
6 K% H+ V$ K8 D, m# r+ j阶段4——加入度量指标 6
" m+ |2 h" T) L2 s1 W6 h0 ~阶段5——更认真地对待测试 60 u) H4 J( Q- T: }7 l8 ^
阶段6——自动化验收测试和自动化部署 7 s7 @5 ~: ~! v% j/ Y0 ?
阶段7——持续部署 7# E: e% U! \& T6 |1 ]" V
接下来做什么呢 7# q$ P& K9 D1 y( T+ j- C3 h0 O% l
第2 章 迈入Jenkins 的第一步 9+ u5 a/ S; \- ?3 R% Y
简介 9. s( l P9 | b2 ?! Q1 o# k9 J) {
准备环境 9" ]5 ]4 z/ B, O8 |/ ^/ }
安装Java 104 U2 p& ?0 P3 x0 e1 [
安装Git 112 j4 J5 x$ Z8 s! k- W6 }/ N
创建GitHub 账号 11
6 Z8 \$ n* S+ m- ~: o/ m配置SSH 密钥 11
6 E: h' h4 E; n2 Y( u; n创建代码库分支 12
; W6 s7 w% b: c8 y$ Q2 Y启动Jenkins 13
; Z$ U$ x& f6 X9 J6 r) V配置工具 17* c' V. `8 \. Y/ Q# g+ s( [( h
配置你的Maven 设置 18
+ Z- r5 C0 P9 O6 w2 d5 z5 M: c配置JDK 19
7 ~% X2 f9 g' `5 l8 d通知 20. k8 B4 l; s& F" g
设置Git 20- D) v! o7 A* ^
你的第一个Jenkins 构建作业 215 k B7 g; W* d% _
你的第一个构建作业 26& z2 M6 Y5 u) r* t! Q i4 q
更多的报告——显示Javadoc 33- w8 y$ x( c4 B8 ^# w
添加代码覆盖率和其他度量 347 l- d0 o; l9 ~6 y$ c
小结 40+ O9 i, u0 W; W
第3 章 安装Jenkins 41
2 H W, v" R. @简介 41( F# V& t U+ A$ a
下载和安装Jenkins 41
$ p+ f' G6 p" a8 u2 Z为Jenkins 准备好构建服务器 44
' I7 X2 w9 T8 C( `, b7 UJenkins 主目录 45
0 o- m& [& O1 O1 Z在Debian 或者Ubuntu 系统上安装Jenkins 47
; j0 z& d" N P9 c2 _4 J在Red Hat、Fedora 或者CentOS 上安装Jenkins 48( S% ?( M- A' x. X( Z: t% B1 f
在SUSE 或者OpenSUSE 上安装Jenkins 499 b7 e; I, {1 b1 c7 ]6 O1 S# e9 F
以单机应用形式运行Jenkins 49
* F% v) }0 `8 d j9 u6 y/ ~* T2 D基于Apache 服务器运行Jenkins 53
, f3 N& W& j$ t+ i在应用服务器上运行Jenkins 54
) b' S# u: G: [* n内存方面的考虑 54
0 A# h& f3 \9 F. \9 G" L安装Jenkins 为一个Windows 服务 55
d% w% N' w: s6 j5 w4 BJenkins 主目录里有什么 59
; G# H' ~" y& V& P; z备份Jenkins 数据 62$ }' Y' w N, C4 e/ z
升级Jenkins 安装 633 i( ]- e; K9 p5 D0 R% ~/ k0 \
小结 64
# y* {7 ^3 K$ v; b; W0 K- ^第4 章 配置Jenkins 服务器 65
0 i$ e' [, @2 W/ }# v简介 65
* N4 b, u8 l1 @( m* ~0 K! x4 h配置面板——Manage Jenkins 界面 65
' J$ \4 x- |/ {9 b- w/ t& x8 R配置系统环境 68
8 }- [0 c9 {' M3 p* U E配置全局属性 696 a l9 ?" ^8 M0 R1 |7 e- u1 \
配置JDK 70
( F6 B+ H! y9 d4 v配置构建工具 72
7 S/ w& [. Y( P$ |1 ]& s. | }( CMaven 73, f* t" A- n& H8 R
Ant 74
# h8 |5 U' @2 G3 l7 gShell 脚本 755 L. C# t8 Y" d3 i X; k* ?, E
配置版本控制工具 753 |/ U- M; P& Q( f" Y U
配置Subversion 75
$ ?1 {1 K7 q0 V, S) I配置CVS 75& @! p8 w' F9 I& V0 X3 q8 Q5 @; x
配置邮件服务器 76
* C4 K5 F0 C, F8 s1 H9 U. z配置代理 77
& {: I) }- }* D2 y7 p( Z小结 786 p) a4 Q$ d+ Y8 C7 Y/ R
第5 章 设置构建作业 797 G6 L, ?7 t( k9 z
简介 79
2 w+ m& k5 `. G; \Jenkins 构建作业 79
/ Y. Q9 G3 Z; I+ Z8 s. {) q创建自由式构建作业 80
% H \8 N1 P' U9 ^" g- M通用选项 813 b9 ^1 u# w- C/ y1 h- g) |
高级项目选项 82
+ o' x! ~1 y' H6 r$ c% b配置源代码管理 83
/ b( L3 T1 S- ^- R2 k用Subversion 工作 842 I% D0 j5 `4 }& M+ D
使用Git 86+ P( J9 _. x) k/ [
Build Triggers 96
5 a4 I: q( Y, y! ~构建作业完成后触发下一个 970 ]- X7 e+ G, H9 K2 Z0 @1 y
计划构建作业 975 y) F5 ?1 S1 c4 F: ?
轮询SCM 98$ \# Y; ^: I3 M/ j
远程触发构建 99' U9 @+ Y' G5 U v6 w
手工构建作业 101
& @. F! B" e4 L+ ^构建步骤 101
* c$ H1 N1 A5 M; S$ l& {5 {Maven 构建步骤 102
% Z/ T, F. g/ `7 CAnt 构建步骤 103
9 C4 N# g* A) c执行Shell 或Windows 批处理命令 104
: ?, q3 x' t6 X在构建中使用Jenkins 环境变量 105
* W5 m/ c0 Z% i" K! F& [0 j' ^! M# {! J运行Groovy 脚本 1080 G6 F1 o& b3 q' E9 Q# R- [
用其他语言构建项目 110
% w" t; x* m3 {1 z Z5 I构建后的操作 110, Q! I) R8 M% D) V1 s
报告测试结果 110
9 t' Q: S6 `) c0 e R# i# Q归档构建产物 110. `9 f% c* o, W' ^3 k4 V
通知 1142 ?; d0 y8 @/ o6 j
构建其他的项目 114
8 z0 F x8 v; Q) k* M! w7 \运行新的构建作业 115( v0 {" m7 }2 ]$ }6 h
使用Maven 构建作业 1157 |/ [1 s. t7 e; V
每当SNAPSHOT(快照)依赖被建立时都要进行构建 116
! G# T4 ]) H) n$ M( {& ?配置Maven 构建 116' ]1 O& _. A( K" z4 H
构建后期操作 118
2 E! h J# f9 \. U1 C部署到企业仓库管理器 118
% G0 }& ?4 u4 U& b6 A# i. X部署到商业企业仓库管理器 122
; H O- f9 W; u: ~ p2 ~管理模块 122
5 a/ B w$ z: ^( dMaven 构建作业中额外的构建步骤 122
# \: ~/ R" X+ s4 |$ k用其他语言使用Jenkins 124
' Z4 O* I0 B5 d: K% J用Grails 构建项目 1249 Z f* I* b! j
用Gradle 构建项目 126: k0 m% m, E2 v9 c g- f
用Visual Studio MSBuild 构建项目 129
% W& n' _# P* c0 _) h l4 V, j! w用NAnt 构建项目 130
: l" A1 P% U; A9 p+ A使用Ruby 和Ruby on Rails 构建项目 130
: Q* k# Q2 ]% F9 R( f小结 132
2 |" \7 b$ ?# j8 L& ]第6 章 自动化测试 1339 g# |* ~# T! T* t" R
简介 133
$ u3 X' ~1 j2 ^! X( q. D! Q8 @9 o2 w自动化单元和集成测试 134
! a9 j ]: r9 R$ ?! a7 E% E/ h在Jenkins 中配置测试报告 135
: p1 B4 u$ @9 m' @. I显示测试结果 137( Z9 S3 i, G0 }5 J: ^ r
忽略测试 140' Z8 U; _- E! N* ~: B4 a X( U! V
代码覆盖率 142* s! l3 `0 m3 C3 n8 M+ t
使用Cobertura 测量代码覆盖率 143
|1 C. D; U7 a. N( V. e使用Clover 测量代码覆盖率 1522 |/ j7 H$ H& N# |5 _
自动化验收测试 154
( B7 i: X. H$ e5 BJMeter 自动化性能测试 157
- T/ R" ]7 Z' ~1 g1 |请求帮助!我的测试运行得太慢了 165! T3 o1 v$ I: [6 Z& J
添加更多的硬件 1664 x. f( S5 z2 G7 y' D# e$ ^0 i/ o
运行更少的集成/ 功能测试 166
! D7 h: L: a% ^# u并行运行测试 1674 u) q8 e" G7 d
小结 167
. a" O3 d% v! U/ E, D第7 章 Jenkins 安全 169
2 j2 K3 D9 u1 L X9 W简介 169) p! R7 w. O/ m! r
激活Jenkins 安全 169& ?+ r4 h* S4 Z4 }. `7 ?' ?* L
Jenkins 安全实例 170
+ n. |8 d$ a8 i! w安全域——定义Jenkins 用户 171
( k# R, d4 [/ F- l使用Jenkins 内置用户数据库 171
; z& k4 u, d" ~1 ?$ W使用LDAP 仓库 1743 \2 N& N5 J/ w4 M3 g* D% P! V; r; o
使用微软活动目录 176" X6 m) d7 \! }- p% y$ b$ u2 [
使用UNIX 用户和用户组 177( _# q4 G, `* w
Servlet 容器授权 177$ A4 y+ A& X# g5 A) C) B
使用Atlassian Crowd 178- T0 O* B. T8 B6 F
与其他系统集成 179# R# A/ I3 {- s; g) P- J* z8 o r
授权——谁可以做什么 181
. K N/ b( `6 r* N, E5 n( E安全矩阵 181
3 J# ~- @5 b6 i* I7 c" x7 h g基于项目的安全 185
& m/ u, S$ t+ v. m$ y' R& r+ V基于角色的安全 1888 Z6 e b. b& x+ a( S, x" o
审计——跟踪用户行为 1903 p2 r3 o& l- l' H
小结 193
5 u2 Z6 Q3 P" z: `第8 章 通知 195
^% Z) e( d, S1 T5 Q) \简介 1958 f, `% C" n! e/ G
电子邮件通知 195
* ?7 n4 Q2 N% K& r5 B6 L更高级的电子邮件通知 197
" @$ q) A5 d0 R2 _声明构建 200
, E7 j7 ^( v5 i4 ~9 w; C5 b; c! _( @RSS 订阅 2023 w) ]# y- G3 }( J
构建分发器 202
" q4 k# {- s' o5 c即时消息 204
6 P* c+ Q: @% q/ z, ~ E用Jabber 进行IM 通知 204
8 }/ ^0 h2 V% V1 `( H+ ~8 d1 {3 d+ m9 u使用IRC 的IM 通知 209
2 e6 N C. `, v2 n( s ]IRC 通知 209' o8 Q: _% n8 q: }0 j
桌面通知器 212
4 I) p4 N T$ n' u通过Notifo 通知 213
: \( H( p, a+ p* e0 K移动通知 216
, w+ X0 K# s1 A短信通知 216
?9 Y* x1 k4 d+ S* a5 `制造噪声 219" N2 K4 r3 n0 A3 Q
极端反馈设备 221
& K# b D1 s0 A8 W3 o* x) r8 {小结 222 t8 u. n" ~/ I1 }/ X% f ~% i5 t
第9 章 代码质量 225; {5 D8 r) q( n% c) U
简介 225
; e* E5 U# z( x" g8 J构建过程中的代码质量 2262 |# W3 b) q$ k" l
受欢迎的Java 和Groovy 代码质量分析工具 2273 k- n% t+ ?# a7 _
Checkstyle 2272 Z# {7 c* B! `* [( B
PMD/CPD 2303 A; N" J# R0 V: W
FindBugs 2359 m# }' o" h6 N2 F
CodeNarc 237
+ P1 [; I% }( ^' _使用Violations 插件报告代码质量问题 238% h, |' p( ^0 h4 @8 y5 s: P6 i
与自由风格下的构建作业一起工作 2399 p5 k' _# O" x% c* u
使用Maven 构建作业 242
( ~" l7 C3 @4 F7 I使用Checkstyle、PMD 和FindBugs 报告 244/ @0 |$ I: z- m; ?. i3 v$ B
报告代码复杂度 247
6 d# a" o5 o# S( W: }报告未完成的任务 248
' D0 B( u$ [' G! j2 V集成Sonar 249
! {( i( U8 K3 E# F' C0 M O( E4 h小结 253& s% m4 e s \* \. ^8 O |
第10 章 高级构建 255
1 O* Q0 c/ G% G6 p2 n* c9 k简介 255
4 e' R- g& w: f' I参数化构建作业 255
, C) W% Q( n1 ~; I创建一个参数化构建作业 256
+ ^ Y; H2 \+ R( q3 [6 P- Y为构建适配参数化构建脚本 257
N( h- Z5 G0 Q' q高级参数类型 259& E }2 k: [' [; \" ~
使用Subversion 标签构建 2602 S' W- [+ [4 I2 R q
使用Git 标签构建 261
8 D' s' V" |$ ]; Q1 w远程启动参数化构建作业 262
/ P8 D& }7 _' O- Q" t2 E8 H参数化构建作业历史 263
9 r" c$ J6 B9 Y% j参数化触发2630 N* c4 K, L- P
多重结构的构建作业 266
- `# C, Q% E- Z) S3 p* q' I搭建多重结构构建 266' g" q: s" A2 k9 R8 r6 V: ~
配置从节点轴 267
1 \+ _& P! M9 y9 B1 t% s5 g配置JDK 轴 268
' w+ q6 X7 X* y8 Q& O* ^自定义轴 268& L' x9 m) Q1 \
执行多重结构构建 2681 l4 F4 O6 x, c, E
自动生成Maven 构建作业 2719 D( d6 `+ w/ W/ _6 @4 T4 L
配置作业 271$ M& y# q0 q% }% D" I
使用继承复用作业配置 273) b5 H1 U, [- i4 e4 m, U3 h
插件支持 275
6 ]0 ~- ^" D5 d- F# i自由式作业 278, w, _& D( i5 [
构建协作 278
/ B" O4 g3 Y3 I/ B+ f* L/ X在Jenkins 中并行构建 279( ~; {$ K, M* a+ ?# G
依赖关系图 279
9 ]' R0 ^, Y; k1 ?连接 280
; h: n; a j6 k, YLocks and Latches 插件 281/ a( r) V( y; z9 u6 Y2 U6 c+ d
构建管道及优化 282
& K, t6 a( l* D" W) e; I通过M2Release 插件管理Maven 版本发布 2837 ]! i4 u9 O+ o$ u& a! m
复制构建产物 286- F1 A8 B- V( ^- J
构建进阶 2891 W+ v- w- S% F# n5 n. u; e) m) q
汇总测试结果 295
( U9 |9 r5 y9 L# s1 f/ N$ @构建管道 2965 m& u; N6 a1 K) O2 \
小结 299* k7 j; g0 L+ N& \& n$ v2 g
第11 章 分布式构建 301
2 r- i0 K, G* J% q4 n5 L简介 301
' n4 J6 d" m4 {- u; P4 sJenkins 分布式构建架构 301
# T8 I! r0 A4 c7 Y( w: C4 cJenkins 主/ 从策略 302' S- O) R0 X5 g* @- `7 `
主节点使用SSH 启动从节点代理 303- Z5 L( b6 V! `7 a5 w/ {" d
使用Java Web Start 手工启动从代理 307
9 @& ]0 M% o3 ?9 \8 X把Jenkins 从节点安装为Windows 服务 3094 ]/ S. T' K0 b
无主节点模式启动从节点 3101 ^$ _+ ^/ w, l0 E' v- i# G6 ?
以远程服务方式启动Windows 从节点 310
, j, [3 m2 [, K2 `: F: r把构建作业与一个或一组从节点关联 311
( a" I, v# u. \/ o! @; @节点监控 313- H! w( b! I# ~3 @* w' n: i
云计算 314
- X6 L+ _$ D& b+ P1 \" H) {8 X使用Amazon EC2 3148 x; x& }4 K# D$ X3 o; U8 z
使用CloudBees DEV@cloud 服务 318
5 q& G& l5 o/ {$ J小结 319- V- o1 k! i) S4 y) N: C- r! F
第12 章 自动化部署和持续交付 321
' D- O' @, X2 e( c D( v6 n" d简介 . 321# q8 T4 Z, E" v l4 a/ a# H: A
实现自动化和持续部署 322% n; P& L/ }+ q6 d6 Z% e
部署脚本 322
5 g$ B5 x0 g8 ?数据库更新 322
8 Y- I4 t7 U* a5 g. \' a3 |冒烟测试 325
# H2 g5 n0 c4 U回滚更改 326& N( p q, B$ e3 h0 r) s
部署到应用程序服务器上 326$ }. [+ C& _' R; I1 V
部署一个Java 应用 327
+ d a- u# U2 A% @: V6 Z! I部署像Ruby 和PHP 这样基于脚本的应用程序 336
# N0 ~. @0 \) m1 ]& V4 ~. Y小结 339
% f; y; l7 _% s. S) z' W第13 章 Jenkins 的维护341
n- B7 F0 d k简介 341
8 m4 `$ g' I4 S- Q4 a1 r1 C监控磁盘空间 341
; D. N5 h: T+ ]* W, y/ p使用Disk Usage 插件 343) v& x" J8 z- ?) {/ ~
磁盘使用及Jenkins Maven 项目类型 344 k2 r; W( c) q
监控服务器负载 345 [' B* ? U" D! \3 \- B, M
备份配置 346& K+ s8 k u9 m0 z7 @3 K
Jenkins 备份基础 346
! l6 ?! d3 \/ j6 K" p- l使用备份插件 348& G p1 Z* g0 i ?& N
更为轻量的自动备份 350" k2 [. u1 Q" l& {$ Q( q6 d+ U9 ?
构建作业归档 350( ?$ M5 Q+ R$ F i A
构建迁移 351
* Q$ ]1 f0 I% ~% [3 \0 v小结 355. A; r$ O9 i, d9 \
附录A 自动化你的单元和集成测试 357
+ k; \2 T0 q& I2 p索引 367
* ]! f, n0 g# k: v5 n
5 G. Z- E, O1 \& p% N IJava资料百度网盘下载地址链接(百度云):java自学网(javazx.com) Jenkins权威指南 PDF 高清 电子书 百度云.rar【密码回帖可见】1 }# _/ i4 K- V0 x
# P0 ? u6 R) F4 _2 }2 {8 u% p
' _' v( [! n2 \. {) W3 P
: B' y: `/ J4 T
+ T+ _5 i1 A! G6 ~ |
|