8/29/10 Maven Repository Management with Nexus Jim McMahon.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Introduction to Maven Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to the Java Stack.
Functional Testing with the Java Stack Test Runner
Java Build Tool Comparison HJUG - April 29th, 2009 John Tyler.
Java development infrastructure at FMI Pekka Rantala FMI.
Maven: Build and project management in the 21th century.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
SubVersioN – the new Central Service at DESY by Marian Gawron.
Open source administration software for education 2012 User Conference April 22-24, 2012 – Atlanta, Georgia “Together Toward Tomorrow” Chris Denne, Colorado.
Curation Tool June 11, Curation Tool Overview Architecture Implementation Dependencies Futures 2.
System Design/Implementation and Support for Build 2 PDS Management Council Face-to-Face Mountain View, CA Nov 30 - Dec 1, 2011 Sean Hardman.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
Version control Using Git 1Version control, using Git.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
MAE Atlassian Tool Suite Administration Training July 8 th, 2013.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
LDS Account Integration. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
Using the ALM Module Fully Automated Deployments in Stack 3.2.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
MAE Continuous Integration Administration guide July 8th, 2013.
Maven Release Plugin Anthony Whyte, Sakai Foundation David Horwitz, UCT.
Version control Using Git Version control, using Git1.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Using the ALM Module Michael Youngstrom. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in lab Please ask questions.
1 Creating an RTC Hot Fix September 18, Steps for creating a hot fix Find the work item where the defect is resolved. Check for existing hot fixes.
Release Management Configuration management. Release Management Goal Coordinate the processes through the project development life cycle Ensure the.
Kako razvijate PL/SQL pakete? File based PL/SQL development Mitja Golouh SIOUG 2006,
1 may 31, 2007 Build, test and deploy ADF applications without effort with the use of Maven2 Aino Andriessen AMIS.
Artifact Management Managing Maven and other artifacts in Perforce.
14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.
Intro to Git presented by Brian K. Vagnini Hosted by.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
Maven 2.0 Improve your build patterns Vincent Massol CTO Pivolis.
Maven for building Java applications By Nalin De Zoysa
UAB Versioning: Definition 1 07/05/2014. Summary UAB component definition UAB component release UAB component query UAB component installation Create.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
Software Deployment & Release 26/03/2015 1EN-ICE.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
CS520 Web Programming Introduction to Maven Chengyu Sun California State University, Los Angeles.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
How to use Drupal Awdhesh Kumar (Team Leader) Presentation Topic.
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
Moshe Shechter | Alma Product Manager
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Open-O Integration Project Introduction
Maven 04 March
CS520 Web Programming Introduction to Maven
Automate Custom Solutions Deployment on Office 365 and Azure
Automatic RElease Service
prepared by hasan.we4tech.com
Maven IIB9 Plug-in Version 9.0
Maven IIB9 Plug-in Version 9.0
Presented by : Chirag Dani & Dhaval Shah
Presentation transcript:

8/29/10 Maven Repository Management with Nexus Jim McMahon

What is a Maven Repository? A Maven repository provides a standard for storing and serving binary software Local repository exists in ~/.m2/repository Maven Central:

What is Nexus? Nexus is a Maven Repository Manager created by Sonatype Simplifies the maintenance of internal repositories and access to external repositories Proxies requests for external artifacts and caches the results Provides a deployment destination for your own generated artifacts

Proxying Remote Repositories When you proxy a remote repository, your repository manager accepts requests for artifacts from clients If the artifact is not already cached, the repository manager will retrieve the artifact from the remote repository and cache the artifacts. Subsequent requests for the same artifact will be served from the local cache.

Artifact Downloads and Caching

Repository Groups

Restricting Downloaded JARs

Hosted Internal Repositories When you host a repository, your repository manager takes care of organizing, storing and serving binary artifacts You can use a hosted internal repository to store internal release artifacts, snapshot artifacts, or 3 rd party artifacts

Release Artifacts These are specific, frozen-in-time artifacts Considered to be solid, stable, and perpetual in order to guarantee that builds which depend on them are repeatable over time Released JAR artifacts are associated with PGP signatures and checksums that verify both the integrity and authenticity of the binary software artifact Maven Central stores release artifacts

Snapshot Artifacts Snapshots capture a work in progress and are used using development A snapshot artifact has both a version number such as “1.3.0” or “1.3” and a timestamp e.g., – commons-lang jar

Reasons to Use a Repository Manager Speeds up builds Builds will be more stable You can deploy and host 3rd party artifacts Easier developer collaboration and sharing of artifacts Searching and indexing of artifacts Repository groups makes it easier to retrieve artifacts from a single URL Procuring External Artifacts: define lists of allowed/blocked repos Staging and Release Management

05/13/10 Internal IT Update Repository Coordinates CoordinateDefinition groupIdGroups a set of artifacts into a logical group (e.g. org.apache.maven) artifactIdName for a software artifact. (e.g., simple-webapp) versionNumerical version for a software project (e.g, 1.2.3, 1.2, 1.2-beta) packagingDescribes the contents of the software artifact (e.g., jar, zip, swc, swr, nar, war, ear, sar

Addressing Resources in a Repository Tools designed to interact with Maven repositories translate artifact coordinates into a URL which corresponds to a location in a Maven repository e.g., groupId: castor, artifactId: castor, version may be found under /castor/castor/0.9.9/castor jar in the Maven Repository

05/13/10 Internal IT Update Nexus Production Server SpecValue LocationHelgerman Court OSRHEL 5 CPUQuad Core Memory16 GB Form factorBlade Server

05/13/10 Internal IT Update Nexus Software SpecValue VersionNexus Professional License and Support Contract See Collaborate Restricted Content Page pport+-+Restricted+Content CBIIT Project Page us+Maven+Repository+Manager URL

Browsing Repositories

05/13/10 Internal IT Update Nexus Maven 2 Release Repositories Repository IDComment 3 rd PartyUsed to install 3 rd party artifacts that are not in one of the common public repositories Google CodeRepository containing Google projects Java.net – Maven 2Contains some interesting projects like PostgreSQL and JBoss Maven CentralMain Maven public repo. Very large. ReleasesHosted repository for internal projects

05/13/10 Internal IT Update Nexus Maven 2 Snapshot Repositories Repository IDComment Apache SnapshotsSnapshots for Maven and many plugins Codehaus SnapshotsContains many maven plugins for the Mojo Project and others SnapshotsHosted repository for internally developed snapshots

Deploying a SNAPSHOT

Deploying a SNAPSHOT: settings.xml

Deploying a SNAPSHOT cont. $ mvn clean install deploy  Removes build output under target/ folder  Compiles and installs the application in ~/.m2/repository  Deploys the application to the SNAPSHOT repository  Can be simplified by running 'mvn clean deploy'

Deployed SNAPSHOT in Nexus Notice that SNAPSHOT is replaced with a timestamp

Release plugin configuration Configure the SCM block Configure the releases plugin

Automating releases  Deploying a release involves a number of standard steps – Commit all current changes to Subversion – Update the version number (release version) and commit the changes – Tag the release version – Build and deploy this version – Update the version number (development version) and commit the changes  These steps are easily automated using the release plugin

Preparing a release $ mvn release:prepare Maven will:  Check that there is no uncommitted code  Check that there are no snapshot dependencies  Ask you to confirm the release version, release tag, and new development version  Will update the files and check them into Subversion

Preparing a release cont. $ mvn release:prepare Maven will also: Update the SNAPSHOT version number to a release version number Perform a build to verify everything is ok Commit the modified POMs to the SCM Create a tag in the SCM for the release Update the POM version number to the next SNAPSHOT version Commit the modified POMs to the SCM

Deployed release artifacts in Nexus

Manually Uploading Artifacts (3 rd party)

System Feeds

Deploying Sites to Nexus  Nexus allows you to create a Maven site repository to hold Maven generated reports  Provides a central location for project information similar to what GForge provides  Unlike GForge, the management of the project info (e.g., trackers, project docs, etc.) is handled by other tools (e.g., Jira, Confluence, AnthillPro, Atlassian Fisheye, etc.)  Maven site pages add links to these tools and provide overall project descriptions

Creating a Maven Site Repository Add a “Hosted Repository”

Creating a Maven Site Repository cont. Change the type (provider) of the repo to “Maven Site Repository”

Publishing a Maven Site to Nexus $ mvn site site:deploy

Build Promotion with Nexus Staging Suite  Without the Staging Suite, an artifact deployed to a Hosted repository is available immediately, with no oversight, approval or certification  Organizations with a QA team may want artifacts deployed to a staging repository for potential release candidates  The Nexus Staging Suite creates temporary repositories that can be promoted as a whole or dropped depending on the results of QA testing

How Staging Suite Works  Developer deploys an artifact or set of artifacts to Nexus  Staging Suite intercepts this deployment and matches the artifact's path against a set of Staging Profiles  If the path of the artifact activates a staging profile, a temporary staging repository is created and the artifacts are deployed to this repository  Once deployed, the developer will “Close” the staging repo  The Staging Suite will add the temporary staging repo to one or more Target Repository Groups.

Staging Suite: intercepting deployed artifacts

Staging Suite: Releasing an artifact

Multi-level Staging and Build Promotion

Nexus Procurement Suite Gives Nexus administrators control over what artifacts are allowed into an organization from a remote proxied repository such as Maven Central Can be used to limit based on version or license

05/13/10 PM Q & A

05/13/10 PM Thank You for coming!