Upload
khangminh22
View
2
Download
0
Embed Size (px)
Citation preview
Enterprise Maven Repository BOF
Max Rydahl Andersen & Pete MuirRed HatJune 14th 2013
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
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
• 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
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
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
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
Recommendations
• Use BOM’s
• Install/use a repository manager (Nexus, Artifactory, ...)
• Enable source/javadoc for automatic download
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