9
Software Deployment & Release 26/03/2015 1 EN-ICE

Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 1: Software Deployment & Release 26/03/2015 1EN-ICE

Software Deployment & Release

26/03/2015 1EN-ICE

Page 2: 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

Page 3: Software Deployment & Release 26/03/2015 1EN-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

Page 4: Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 5: Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 6: Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 7: Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 8: Software Deployment & Release 26/03/2015 1EN-ICE

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

Page 9: Software Deployment & Release 26/03/2015 1EN-ICE