Enterprise Maven Repository
BOF
Max Rydahl Andersen & Pete Muir
Red Hat
June 14th 2013
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
org == com
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
org ~= comorg == com
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
org ~= com org != comorg == com
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
org ~= com org != comorg == com
Path to
Product ?
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
Documentation
Getting Started
ExamplesBooks
Support
Migrations
Upgrades
Tools/IDE
Builds
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Standards/Guidelines
Trainings
Saturday 15 June 13
• Pervasive Build and Dependency Management Tool
• Gives a common language to express project
structure and which artifacts a project needs and
which it produces
• Perfect for examples, sharing, teams, continuos
integration, …
Maven
Saturday 15 June 13
What is a Maven Repository
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
• All with a unique GAV ID
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
• All with a unique GAV ID
• Group org.richfaces.core
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
• All with a unique GAV ID
• Group org.richfaces.core
• Artifact richfaces-api.jar
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
• All with a unique GAV ID
• Group org.richfaces.core
• Artifact richfaces-api.jar
• Version 4.0.2
Saturday 15 June 13
What is a Maven Repository
• A directory of artifacts (jar, doc, source, zip,
etc.)
• All with a unique GAV ID
• Group org.richfaces.core
• Artifact richfaces-api.jar
• Version 4.0.2
• Metadata for dependencies between artifacts
Saturday 15 June 13
How Maven Works...
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
Maven
Central~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
Maven
Central~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
richfaces-api.jar
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
richfaces-api.jar
richfaces-api.jar
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
richfaces-api.jar
richfaces-api.jar
richfaces-api.jar
Saturday 15 June 13
How Maven Works...
Maven
Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0</version>
</dependency>
pom.xml
:
Company X
richfaces-api.jar
Which richfaces-api.jar ?
richfaces-api.jar
richfaces-api.jar
Saturday 15 June 13
richfaces-api.jar
jsf-api.jar
Saturday 15 June 13
hfaces-api.jar
jsf-api.jar
Saturday 15 June 13
BOM POM!
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>3.0.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Dependency Management:
<dependencies>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Dependencies:
Saturday 15 June 13
Project Wolf!
• Enterprise Maven Repository
• Every jar, javadoc, source, etc.
available with unique GAV
• BOM POM for stacks
• Across All JBoss Enterprise
Middleware
• EAP 6/WFK 2/JDG 6
• .zip distribution
• ...and...
Saturday 15 June 13
http://maven.repository.redhat.com/
Saturday 15 June 13
How to use ?
• Add http://maven.repository.redhat.com/techpreview/all to
~/.m2/settings.xml
• enterprise=true on archetypes/JBoss Central
• http://jboss.org/developer
Saturday 15 June 13
How Enterprise Maven
Repo Works
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Which richfaces-api.jar ?
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Which richfaces-api.jar ?
richfaces-api.jar
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Which richfaces-api.jar ?
richfaces-api.jar
richfaces-api.jar
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Which richfaces-api.jar ?
richfaces-api.jar
richfaces-api.jar
Saturday 15 June 13
How Enterprise Maven
Repo Works
Maven Central
JBoss.org
~/.m2/
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>4.0.0-redhat-1</version>
</dependency>
pom.xml
:
maven.repository.jboss.com
richfaces-api.jar
Which richfaces-api.jar ?
richfaces-api.jar
richfaces-api.jar
Company X
Saturday 15 June 13
Project Wolf “Rules”
1. Unique Group-Artifact-Version (GAV)
2. Community version + -redhat-<id>
• hibernate-validator-4.2.0.Final-redhat-1
• richfaces-api-4.0.0.Final-redhat-3
3. BOM POM’s for the stack(s)
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
What is there today ?
http://maven.repository.redhat.com
QuickStarts/Archetypes
JBoss Developer Framework
The JBoss Way
JBoss Developer Studio
Forge
Arquillian
OpenShift
Saturday 15 June 13
Saturday 15 June 13
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Saturday 15 June 13
Documentation
Getting Started
ExamplesBooks
Support
Migrations
Upgrades
Tools/IDE
Builds
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Standards/Guidelines
Trainings
Saturday 15 June 13
Documentation
Getting Started
ExamplesBooks
Support
Migrations
Upgrades
Tools/IDE
Builds
Platform
Candidate
Release
Quality
Assurance
JBoss
Enterprise
Middleware
Standards/Guidelines
Trainings
Saturday 15 June 13
Saturday 15 June 13
Saturday 15 June 13
Girl-1
Saturday 15 June 13
Girl-1 Girl-1-redhat-1
Saturday 15 June 13
Girl-1Girl-1-redhat-1
Saturday 15 June 13
Saturday 15 June 13
Assasin-4
Assasin-4
-redhat-3
Saturday 15 June 13
Assasin-4
Assasin-4
-redhat-3
Saturday 15 June 13
richfaces-api.jar
jsf-api.jar
Saturday 15 June 13
hfaces-api.jar
jsf-api.jar
BOM POM
org.jboss.spec.javaee6-3.0.0
Saturday 15 June 13
Recommendations
• Use BOM’s
• Install/use a repository manager (Nexus,Artifactory, ...)
• Enable source/javadoc for automatic download
• burr@redhat.com
Saturday 15 June 13
https://github.com/jbossas/quickstart
https://github.com/jbossas/archetypes
https://github.com/jboss-jdf/jboss-bom
Questions ?
http://jboss.org/developer
http://devstudio.jboss.com
http://maven.repository.redhat.com
Saturday 15 June 13

Enterprise Maven Repository BOF