ToursJUG - Anniversaire 2016
-
Upload
francois-robert -
Category
Engineering
-
view
383 -
download
1
Transcript of ToursJUG - Anniversaire 2016
![Page 1: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/1.jpg)
![Page 2: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/2.jpg)
![Page 3: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/3.jpg)
![Page 4: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/4.jpg)
Publier sur un repo central
![Page 5: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/5.jpg)
/** * @author François Robert */public class PtitbobAtToursJug { public static void main(String... args) { System.out.println("Hello everybody"); } public Twitter getTwitter() { return new Twitter("@ptitbob"); } public URL getGithub() throws MalformedURLException { return new URL("github.com/ptitbob"); }}
![Page 6: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/6.jpg)
Pourquoi ?
Lib qui n’existe pas
Idée du siècle
Plugin maven
complexe Iznogoud
![Page 7: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/7.jpg)
Lib qui n’existe pas
Swagger UI+Swagger
= Swagger-UI-Integration@SwaggerUIConfigurationpublic class ApplicationConfiguration {}
![Page 8: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/8.jpg)
![Page 9: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/9.jpg)
![Page 10: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/10.jpg)
![Page 11: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/11.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 12: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/12.jpg)
Ce qu’il ne faut pas faire
• Intégrer un repository (autres que défaut)
• Intégrer des lib non libre
• Lib ayant une licence moins permissive
![Page 13: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/13.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 14: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/14.jpg)
<groupId>org.shipstone</groupId> <artifactId>swagger-ui-integration</artifactId> <version>1.0</version>
Coordonnées du projet
Sour
ces Javadoc
![Page 15: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/15.jpg)
Coordonnées == choix du nom de package de base
Nom de domaine
domain.fr
fr.domain……
![Page 16: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/16.jpg)
Coordonnées == choix du nom de package de base
Repo github
com.github.ptitbob
![Page 17: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/17.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 18: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/18.jpg)
Descriptif du projet
<url>https://github.com/ptitbob/swagger-ui-integration</url> <name>swagger-ui-integration</name> <description>Swagger core and UI integration effortless for JavaEE application</description>
![Page 19: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/19.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 20: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/20.jpg)
Disposer d’une clé PGP
Installation de gnupg2
Générer une clé
Enregistrer la clé publiquehttp://pgp.mit.edu
gpg2 --gen-key
![Page 21: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/21.jpg)
Signature des jars<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <configuration> </configuration> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin>
-rw-r--r--+ 1 francois staff 885K 22 mar 00:24 swagger-ui-integration-1.0-javadoc.jar
-rw-r--r--+ 1 francois staff 885K 22 mar 00:24 swagger-ui-integration-1.0-javadoc.jar.asc
-rw-r--r--+ 1 francois staff 20K 22 mar 00:24 swagger-ui-integration-1.0-sources.jar
-rw-r--r--+ 1 francois staff 20K 22 mar 00:24 swagger-ui-integration-1.0-sources.jar.asc
-rw-r--r--+ 1 francois staff 805K 22 mar 00:24 swagger-ui-integration-1.0.jar
-rw-r--r--+ 1 francois staff 473B 22 mar 00:24 swagger-ui-integration-1.0.jar.asc
-rw-r--r--+ 1 francois staff 11K 22 mar 00:24 swagger-ui-integration-1.0.pom
-rw-r--r--+ 1 francois staff 473B 22 mar 00:24 swagger-ui-integration-1.0.pom.asc
![Page 22: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/22.jpg)
Ne mettez pas votrepassphrase
dans le pom !!!
![Page 23: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/23.jpg)
Préférez settings.xml <profiles> <profile> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.executable>gpg2</gpg.executable> <gpg.passphrase>MaSuperPhraseCodée</gpg.passphrase> <gpg.keyname>Clé.Publique</gpg.keyname> </properties> </profile> </profiles>
![Page 24: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/24.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 25: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/25.jpg)
Licence ?
Laquelle ?!!!!
![Page 26: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/26.jpg)
![Page 27: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/27.jpg)
LGPLLicence publique générale limitée GNU
<licenses> <license> <name>GNU LESSER GENERAL PUBLIC LICENSE version 3</name> <url>http://www.gnu.org/licenses/lgpl-3.0.fr.html</url> </license> </licenses>
![Page 28: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/28.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 29: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/29.jpg)
<developers> <developer> <name>Francois Robert</name> <email>[email protected]</email> <url>http://www.shipstone.org</url> <timezone>Europe/Paris</timezone> <roles> <role>Developer</role> </roles> </developer> </developers>
Le(s) développeur(s)Utilisé pour la signature
![Page 30: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/30.jpg)
• Coordonnées• Description du projet• La signature• La licence• Le(s) développeur(s)• Informations de repo de source
![Page 31: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/31.jpg)
Repo de source….
<scm> <url>https://github.com/ptitbob/swagger-ui-integration</url> <connection>scm:git:[email protected]:ptitbob/swagger-ui-integration.git</connection> <developerConnection>scm:git:[email protected]:ptitbob/swagger-ui-integration.git</developerConnection> </scm>
![Page 32: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/32.jpg)
Demande de publication
http://issues.sonatype.org
Open Source Software Repository Hosting (OSSRH)
![Page 33: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/33.jpg)
Demande de publication
Il en existe d’autres
• Apache Software Foundation (for all Apache projects) • FuseSource Forge (focused on FUSE related projects) • nuiton.org • …
![Page 34: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/34.jpg)
Créez vous un compte
Création de demande
Demande de publication
![Page 35: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/35.jpg)
Demande de publicationCommunity Support - Open Source Project Repository Hosting (OSSRH)
Nouveau projet
Le projet en une phrase
Courte description
![Page 36: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/36.jpg)
Demande de publication
Le groupId choisi
Site de description ou lien vers le README
L’URL (github ou bitbucket)
Login Sonatype
![Page 37: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/37.jpg)
Demande de publication
Demande déposée le 05/03
![Page 38: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/38.jpg)
Demande de publication… 2 jours plus tard :
![Page 39: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/39.jpg)
Demande de publication
<distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement>
Repo de vérification avant publication
Intégration des repository dédiés
![Page 40: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/40.jpg)
Configuration de la release
Utilisation du plugin Release
Utilisation du plugin Nexus
![Page 41: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/41.jpg)
Configuration de la releaseUtilisation du plugin Release
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> <configuration> <tagNameFormat>v@{project.version}</tagNameFormat> <autoVersionSubmodules>true</autoVersionSubmodules> <useReleaseProfile>false</useReleaseProfile> <releaseProfiles>release</releaseProfiles> <goals>deploy</goals> </configuration> </plugin>
![Page 42: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/42.jpg)
Configuration de la releaseUtilisation du plugin Release
mvn clean install release:clean release:prepare
Création d’un tag de version
![Page 43: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/43.jpg)
Configuration de la releaseUn petit plus…
![Page 44: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/44.jpg)
Utilisation du plugin Nexus<plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.3</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <servers>
<server>
<id>ossrh</id>
<username>ptitbob</username>
<password>[password]</password>
</server>
</servers>
pom.xmlsettings.xml
Configuration de la release
![Page 45: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/45.jpg)
Publication de la releaseEn 2 temps
mvn clean install release:clean release:prepare1
mvn -Prelease clean install gpg:sign nexus-staging:deploy
2
Se placer dans le tag généré
![Page 46: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/46.jpg)
![Page 47: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/47.jpg)
Publication de la release
![Page 48: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/48.jpg)
Publication de la release
![Page 49: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/49.jpg)
![Page 50: ToursJUG - Anniversaire 2016](https://reader034.fdocument.pub/reader034/viewer/2022042619/58e85bf11a28ab78478b6709/html5/thumbnails/50.jpg)
http://fr.slideshare.net/francoisrobert/toursjug-anniversaire-2016