没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
brief contents
PART 1: INTRODUCING GRADLE
1 Introduction to project automation
2 Next-generation builds with Gradle
3 Building a Gradle project by example
PART 2: MASTERING THE FUNDAMENTALS
4 Build script essentials
5 Dependency management
6 Multiproject builds
7 Testing with Gradle
8 Extending Gradle
9 Integration and migration
PART 3: FROM BUILD TO DEPLOYMENT
10 IDE support and tooling
11 Building polyglot projects
12 Code quality management and monitoring
13 Continuous Integration
14 Artifact assembly and publishing
15 Infrastructure provisioning and deployment
Appendix A: Driving the command line
Appendix B: Groovy for Gradle users
1
Introduction to project automation
This chapter covers
Understanding the benefits of project automation
Getting to know different types of project automation
Surveying the characteristics and architecture of build tools
Exploring pros and cons of build tool implementations
Tom and Joe work as software developers for Acme Enterprises, a startup company that
offers a free online service for finding the best deals in your area. The company recently
received investor funding and now is frantically working toward its first official launch. Tom
and Joe are in a time crunch. By the end of next month they’ll need to present a first version
of the product to their investors. Both developers are driven individuals, and they “pump out
features” daily. So far, development of the software has stayed within the time and budget
constraints, which makes them happy campers. The chief technology officer (CTO) pats them
on the back; life is good. However, the manual and error-prone build and delivery process
slows them down significantly. As a result, the team has to live with sporadic compilation
issues, inconsistently built software artifacts, and failed deployments. This is where build
tools come in.
This chapter will give you a gentle introduction into why it’s good idea to automate your
project and how build tools can help you get the job done. We’ll talk about the benefits that
come with sufficient project automation, the types and characteristics of project automation,
and the tooling that enables you to implement an automated process.
Two traditional build tools dominate Java-based projects: Ant and Maven. We’ll go over
their main features, have a look at some build code, and talk about their shortcomings.
1
Lastly, we’ll discuss the requirements for a build tool that would fulfill the needs of modern-
day project automation.
1.1 Life without project automation
Going back to Tom and Joe’s predicament, let’s go over why project automation is such a no-
brainer. Believe it or not, lots of developers face the following situations. The reasons are
varied, but probably sound familiar.
My IDE does the job. At Acme, developers do all their coding within the IDE, from
navigating through the source code, implementing new features, compiling and
refactoring code, to running their unit and integration tests. Whenever new code is
developed, they press the Compile button. If the IDE tells them that there’s no
compilation error and the tests are passing, they check the code into version control
so it can be shared with the rest of the team. The IDE is a powerful tool, but every
developer will need to install it first with a standardized version to be able to perform
all of these tasks, a lesson Joe learns when he uses a new feature only supported by
the latest version of the compiler.
It works on my box. Staring down a ticking clock, Joe checks out the code from
version control and realizes that it doesn’t compile anymore. It seems like one of the
classes is missing from the source code. He calls Tom, who’s puzzled that the code
doesn’t compile on Joe’s machine. After discussing the issue, Tom realizes that he
probably forgot to check in one of his classes, which causes the compilation process to
fail. The rest of the team is now blocked and can’t continue their work until Tom
checks in the missing source file.
The code integration is a complete disaster. Acme has two different developme
nt
g
roups, one specializing in building the web-based user interface and the other
working on the server-side backend code. Both teams sit together at Tom’s computer
to run the compilation for the whole application, build a deliverable, and deploy it to a
web server in a test environment. The first cheers quickly fade when the team sees
that some of the functionality isn’t working as expected. Some of the URLs simply
didn’t resolve or resulted in an error. Even though the team had written some
functional tests, they did not get exercised regularly in the IDE
.
T
he testing process slows to a crawl. The quality assurance (QA) team is eager to get
their hands on a first version of the application. As you can imagine, they aren’t too
happy about testing low-quality software. With every fix the development team puts
into place, they have to run through the same manual process. The team stops to
check new changes into version control, a new version is built from an IDE, and the
deliverable is copied to the test server. Each and every time, a developer is fully
occupied and can’t add value to the company otherwise. After weeks of testing and a
successful demo to the investor, the QA team says the application is ready for
primetime.
2
剩余469页未读,继续阅读
nangnang
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 永磁同步电机旋转高频信号注入法零低速无位置控制仿真,相比高频方波信号注入法,旋转高频信号注入法噪声更小损耗更低,该模型注入1000Hz旋转高频电压信号到电机中用于产生激励电流,在低速100rpm下无感
- jQuery实现的带左右切换按钮鼠标滑过图片向上弹出放大动态特效源码.zip
- 电子电气架构中整车网络管理与休眠唤醒机制详解
- jQuery实现点击按钮爆炸式弹出不同颗粒动画特效源码.zip
- 管材切割机sw18全套技术资料100%好用.zip
- 基于STM32环境温湿度监测系统设计(附项目代码zip)
- 钢板折边机sw18全套技术资料100%好用.zip
- IMG_20250104_163933.jpg
- win32汇编环境,理解BeginPaint函数与GetDC函数的区别
- SMTP(2).zip
- 过滤器清洗机step全套技术资料100%好用.zip
- CCNA-200-301.pdf
- 计算机视觉中圆与椭圆超最小二乘拟合算法(HyperLS)的理论与实验研究
- COMSOL 一维电化学模型和热模型 很重要,P2D模型计算 可以得到准确的热源 同时也可以仿真电压得到准确的数据 拟合即可使用 不用担心审稿人问你数据来源
- 轨道式可调铁板分张器sw19可编辑全套技术资料100%好用.zip
- 环形柔性链输送机sw16可编辑全套技术资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页