Upload
ella-sutton
View
232
Download
0
Embed Size (px)
DESCRIPTION
Apache Maven 3 Build system for Java projects Main objectives: Making the build process easy Providing a uniform build system Providing quality project information Providing guidelines for best practices development Main principles Convention over configuration Dependencies management Build lifecycles Plug-in based architecture Apache Maven official site EN-ICE 26/03/2015
Citation preview
Software Deployment & Release
26/03/2015 1EN-ICE
2
Summary1. Apache Maven & Nexus Repositories
2. Requirements & needs of EN-ICE-SIC
3. Working Group Outcome: Deployment
26/03/2015EN-ICE
Apache Maven
3
• Build system for Java projects• Main objectives:
• Making the build process easy• Providing a uniform build system• Providing quality project information• Providing guidelines for best practices development
• Main principles• Convention over configuration• Dependencies management• Build lifecycles• Plug-in based architecture
•Apache Maven official site
EN-ICE 26/03/2015
Apache Maven
4
Dependency management
…<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8</version> </dependency> <dependency> <groupId>commons-jxpath</groupId> <artifactId>commons-jxpath</artifactId> <version>1.3</version> </dependency></dependencies>…
Project Object Model (pom.xml)
EN-ICE 26/03/2015
Apache Maven & Nexus Repositories
5
Maven Central Repository
Development PC
mvn compile
Internet
CERN LAN
Codehaus Repository
…
CERN Public
Repository
EN-ICERepository
First code compilation may take a long time until all the dependencies are downloaded.
Following code compilations will be much faster.
POM
Maven Local
Repository
Dependency resolution
EN-ICE 26/03/2015
Apache Maven & Nexus Repositories
6
Maven Central Repository
Development PC
mvn deploy
Internet
CERN LAN
Codehaus Repository
…
CERN Public
Repository
EN-ICERepository
POM
Software deploymentsynchronization
official-releasebeta-releasealpha-release
official-release
Maven Local
Repository
Only official releases are visible from the Internet
EN-ICE 26/03/2015
Requirements & Needs of EN-ICE-SIC
• Repository Manager for Software Releases (Nexus, Artifactory,…)• Deployment of jar, rpm, war, zip…• Maven integration• Dependency resolution• Queries to get available software (REST API, Eclipse Aether, …)
• Public releases and internal releases
• Automatic deployment of software documentation• API: Nexus, DFS• User Manuals: EDMS • Online Documentation: Confluence, Drupal, Wikis …
• Interface for Software Releases• Jenkins
7EN-ICE 26/03/2015
WG Outcome: DeploymentList of activities and tools that make the software system available for use.• Requirement: Ability to automate all the possible actions• Procedure:
• Compiling the sources• Running unit tests• Tagging the source code• Generate API documentation (Javadoc, Doxygen, …)• Packaging files in a distributable format• Uploading the packaged files to a server or repository manager• Updating the project documentation (Confluence, EDMS, …)• …
• Tools:• Apache Maven• Hudson/Jenkins
• Servers• Sonatype Nexus: Deployment of software libraries and tools• EDMS: Storage for software documentation (user manuals, design documents, etc.)• Confluence: Deployment of system’s online documentation and software download links
8EN-ICE 26/03/2015