Book Image

Extending Jenkins

By : Donald Simpson
Book Image

Extending Jenkins

By: Donald Simpson

Overview of this book

Jenkins CI is the leading open source continuous integration server. It is written in Java and has a wealth of plugins to support the building and testing of virtually any project. Jenkins supports multiple Software Configuration Management tools such as Git, Subversion, and Mercurial. This book explores and explains the many extension points and customizations that Jenkins offers its users, and teaches you how to develop your own Jenkins extensions and plugins. First, you will learn how to adapt Jenkins and leverage its abilities to empower DevOps, Continuous Integration, Continuous Deployment, and Agile projects. Next, you will find out how to reduce the cost of modern software development, increase the quality of deliveries, and thereby reduce the time to market. We will also teach you how to create your own custom plugins using Extension points. Finally, we will show you how to combine everything you learned over the course of the book into one real-world scenario.
Table of Contents (16 chapters)
Extending Jenkins
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

An introduction to Maven


We will use Maven to build our plugin. If you are unfamiliar with Maven, don't worry—the main point of Maven is that you don't necessarily need to know a lot about Maven to use it and to get a lot from it!

For a build tool that's quite unusual, you may well have expected yourself to be knee-deep in configuration files and code. However, Maven works quite well without these due to the core philosophy that is at its heart: it uses convention over configuration.

Maven works on the assumption that you and your project are following a set of standard, sensible conventions. These are nothing too weird or onerous, so if you are following this path, then Maven should just know where everything is and what you would like to achieve and will help you get up and running very quickly and easily.

One of these core assumptions is related to your project structure; specifically, if you are using a directory layout like this:

Item

Default dir (relative to the project directory)

source...