Curso Integration with Maven Jenkins and Nexus
24 horasVisão Geral
Curso Integration with Maven Jenkins and Nexus, Integração Contínua com Maven, Jenkins e Nexus tem o principal objetivo, ensina aos alunos e empresas o processo de construção do Apache Maven, os princípios da integração contínua e como implementar a integração contínua com execução automatizada de testes usando Jenkins, Maven e o gerenciador de repositório Sonatype Nexus OSS. Os alunos usam uma cópia local do Jenkins para criar e executar trabalhos Maven, vincular-se a um sistema de controle de versão, executar testes automatizados e gerar relatórios de desenvolvimento. Os participantes configuram o sistema para registrar relatórios de construção e artefatos gerados em um repositório Nexus.
Objetivo
Após realizar este Curso Integration with Maven Jenkins and Nexus você será capaz de:
- Baixe e instale o Maven
- Construir um projeto
- Trabalhe com a estrutura de diretórios, plug-ins, repositórios do Maven e muito mais
- Compreender o modelo de objeto do projeto (POM)
- Crie uma aplicação web completa usando Maven
- Crie e ative perfis
- Use o Maven do Eclipse através do plugin m2eclipse
- Instalar e configurar o Jenkins em um contêiner de servlet
- Criar compilações Jenkins
- Configure e use Apache Ant e Apache Maven com Jenkins
- Use Jenkins para gerar relatórios de padrões de codificação Java, relatórios de cobertura de código e avisos de alteração
- Use Jenkins para implantar software automaticamente em um ambiente de teste
- Configure Maven e Jenkins para implantar os artefatos gerados no Nexus
Pre-Requisitos
- Os participantes devem ter familiaridade com as práticas de desenvolvimento Java.
Materiais
Portugues/Inglês + Lab PraticoConteúdo Programatico
Introduction To Continuous Integration And Jenkins-Ci
- Agile Development
- Agile Development (cont'd)
- What is Continuous Integration
- What is Continuous Integration (cont'd)
- What is Continuous Integration (cont'd)
- Typical Setup for Continuous Integration
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
Introduction To Apache Maven
- Build Tools for Java
- Build Tools for Java (cont'd)
- History of Build Tools
- Traditional Scripting
- 'make'
- Problems with Make
- Manual Build with JavaC
- ANT
- Pros and Cons of Ant
- Apache Maven
- Goals of Maven
- What is Apache Maven?
- What is Apache Maven (cont'd)
- Why Use Apache Maven?
- The Maven EcoSystem
- Consistent Easy-to-Understand Project Layout
- Convention Over Configuration
- Maven is Different
- Maven Projects have a Standardized Build
- Effect of Convention Over Configuration
- Importance of Plugins
- A Key Point on Maven!
Installing And Running Apache Maven
- Downloading Maven
- Installing Maven
- Run From Command Line
- Running Inside an IDE
- Settings.xml
- Local Repository
Installing and Running Jenkins
- Downloading and Installing Jenkins
- Running Jenkins as a Stand-Alone Application
- Running Jenkins on an Application Server
- Installing Jenkins as a Windows Service
A Jenkins Job
- Different types of Jenkins job
- Configuring Source Code Management (SCM)
- Working with Subversion
- Build Triggers
- Schedule Build Jobs
- Polling the SCM
- Maven Build Steps
Getting Started with Maven
- Terminology and Basic Concepts
- Artifacts
- Lifecycle
- Default Lifecycle
- Plugins
- Running Maven - the Story So Far
- Running Maven from an IDE
- Common Goals
- pom.xml
- Example
- Example (cont'd)
- Artifact Coordinates
- Standard Layout for Sources
A Web Application in Maven
- A More Complex Project
- Putting it Together With Maven
- Packaging the Target Artifact
- The Source Tree
- Dependencies
- Transitive Dependencies
- Dependency Scope
- Working With Servers
- Declaring and Configuring Plugins
- Running the Plugin
- Binding a Plugin Goal to the Lifecycle
- Archetypes
Commonly Used Plugins
- Maven Plugins
- Declaring and Configuring Plugins
- Running the Plugin
- Binding a Plugin Goal to the Lifecycle
- Maven Surefire Test Plugin
- Failsafe Plugin
- Site Plugin
- JavaDoc Plugin
- PMD Plugin
- Code Coverage – Cobertura
Multi-Module Builds
- Introduction
- The Reactor
- Reactor Sorting
- Multi-Module Build by Example
Pom Projects
- Project Object Model (POM)
- The overall POM structure
- Storing POM
Writing Plugins (Maven)
- What is Maven Plugin
- Example of Using a Plugin
- Create a Custom Plugin
- Create a Custom Plugin (cont.)
- Plugin Management
Creating Archetypes
- Introduction to Maven Archetypes
- Introduction to Maven Archetypes (cont.)
- Using Interactive Mode to generate Goal
- Common Maven Archetypes
Repository Management
- Introduction
- Proxy Remote Repositories
- Release Artifacts
- Snapshot Artifacts
- Reasons to Use a Repository Manager
- Repository Coordinates
- Addressing Resources in a Repository
Release Management
- What is release Management?
- Release Management with Nexus
- Release Management with Maven
Jenkins Plugin
- Introduction
- Jenkins Plugins - SCM
- Jenkins Plugins – Build and Test
- Jenkins Plugins – Analyzers
- Jenkins for Teams
- Installing Jenkins Plugins
Securing Jenkins
- Jenkins Security - Overview
- Jenkins Security
- Authentication
- Authorization
- Confidentiality
- Activating Security
- Configure Authentication
- Using Jenkins's Internal User Database
- Creating Users
- Authorization
- Matrix-Based Security
- Note – Create the Administrative User
- Project-based Matrix Authorization
- Project-Based Authentication
- Role Based Access Control
Distributed Builds with Jenkins
- Distributed Builds - Overview
- Distributed Builds – How?
- Agent Machines
- Configure Jenkins Master
- Configure Projects
Continuous Delivery and the Jenkins Pipeline
- Continuous Delivery
- Continuous Delivery (cont'd)
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery with Jenkins
- The Pipeline Plugin
- The Pipeline Plugin (cont'd)
- Defining a Pipeline
- A Pipeline Example
- Pipeline Example (cont'd)
- Parallel Execution
- Creating a Pipeline
- Invoking the Pipeline
- Interacting with the Pipeline
- Pipeline vs Traditional Jobs
Best Practices For Jenkins
- Secure Jenkins
- Users
- Backups
- Reproducible Builds
- Testing and Reports
- Large Systems
- Distributed Jenkins