83
Enterprise Maven Repository BOF Max Rydahl Andersen & Pete Muir Red Hat June 14th 2013 Saturday 15 June 13

Enterprise Maven Repository BOF - Red Hat

Embed Size (px)

Citation preview

Enterprise Maven Repository BOF

Max Rydahl Andersen & Pete MuirRed HatJune 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

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

org == com

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

org ~= comorg == com

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

org ~= com org != comorg == com

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

org ~= com org != comorg == com

Path to Product ?

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

Documentation

Getting Started

ExamplesBooks

Support

MigrationsUpgrades

Tools/IDE

Builds

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

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.jarrichfaces-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.jarrichfaces-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

richfaces-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

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Saturday 15 June 13

Documentation

Getting Started

ExamplesBooks

Support

MigrationsUpgrades

Tools/IDE

Builds

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

Standards/Guidelines

Trainings

Saturday 15 June 13

Documentation

Getting Started

ExamplesBooks

Support

MigrationsUpgrades

Tools/IDE

Builds

PlatformCandidateRelease

QualityAssurance

JBossEnterpriseMiddleware

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

richfaces-api.jar

jsf-api.jar

BOM POMorg.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

[email protected]

Saturday 15 June 13