C'est quoi un repository maven exactement (a.k.a. l'après Bintray)?

113 views
Skip to first unread message

Jérémie Bresson

unread,
Mar 3, 2021, 6:13:49 AM3/3/21
to lescastcodeurs
Sur mon Bintray perso, j'ai quelques repository dont un de type maven.

Il n'y a rien de vraiment important, mais pour faire quelques essais et pouvoir les partager c'est parfois pratique de pouvoir publier un artefact quelque part en ligne.

Si je ne teste que en local j'abuse de mon local-maven repository (certains disent que c'est mal, mais moi je trouve cela assez pratique).
Les deux outils de build savent l'utiliser (mvn install ou gradle publishToMavenLocal).

Je suis ici dans l'autre cas: celui de mes projets/essais que je veux partager (comme par exemple quand je veux aussi tester un build CircleCI). 
Je me pose la question de l'après Bintray…
Je n'ai aucun besoin de gestion de droits d'accès ou de hautes performances. On parle de petites expériences et tout open-source.

J'ai l'impression que pour avoir un repo maven, il ne faut qu'un serveur de fichier classique.
Il suffit d'avoir les fichiers (jar, pom…) dans les bon dossiers et d'avoir les fichiers metadata comme maven-metadata.xml qui vont bien.

N'importe quelle solution de type Object Storage avec un access https peut faire l'affaire.
(il me semble que de nos jours c'est une bonne solution pour avoir quelque chose de managé et de pas trop cher).

Si je pars sur cette solution, je ne vois pas encore comment je vais faire des ajouts à ce dossier… Il faudrait que j'ai comme un clone de cette structure de dossier en local et que je puisse dire à maven et gradle de publier dans ce dossier.
Une fois que c'est bon, je fais une synchronisation pour tout remettre en ligne sur le serveur de fichier.

Je suis preneur de vos idées / retours…

Et pour vous c'est quoi les alternatives à Bintray?

Lilian BENOIT

unread,
Mar 3, 2021, 6:36:14 AM3/3/21
to lescast...@googlegroups.com, Jérémie Bresson
Bonjour Jérémy,

Github et Gitlab propose des "packages registry":

- Pour Gitlab, la documentation est disponible à
https://docs.gitlab.com/ee/user/packages/maven_repository/#maven-packages-in-the-package-repository
(Philippe pourra en parler bcp plus ;)

- Pour Github, la documentation est disponible à
https://docs.github.com/en/packages/guides/configuring-apache-maven-for-use-with-github-packages


De mon côté, j'utilise déjà Nexus OSS en auto-hébergé (donc pas dans ta
cible).

---
Cordialement,
Lilian BENOIT
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes "lescastcodeurs".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> lescastcodeur...@googlegroups.com.
> Cette discussion peut être lue sur le Web à l'adresse
> https://groups.google.com/d/msgid/lescastcodeurs/52807670-579c-4860-9006-a86c634735b8n%40googlegroups.com
> [1].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/lescastcodeurs/52807670-579c-4860-9006-a86c634735b8n%40googlegroups.com?utm_medium=email&utm_source=footer

Jérémie Bresson

unread,
Mar 3, 2021, 7:29:44 AM3/3/21
to lescastcodeurs
A propos de GitHub packages, j'ai lu sur twitter qu'une limitation est qu'il faut être authentifié pour accéder au repo.

Après j'ai pas bien compris: 
Quand on parle d'authentification, si je publie quelque chose lié à mon compte GitHub, qui peut y avoir accès? (tout le monde avec sa clé, ou juste moi avec ma clé)

Nexus auto-hébergé ça me semble franchement un overkill pour mon use-case.
Mais effectivement c'est un standard si on veut faire les choses proprement.

Bref je suis encore en recherche avant de décider quoi faire.

Gabriel Landais

unread,
Mar 3, 2021, 7:45:28 AM3/3/21
to lescast...@googlegroups.com
Bonjour,
il y a aussi https://jitpack.io/ que je n'ai jamais vraiment testé mais ça parait assez simple. En gros il build directement depuis le repo gihtub et publie les artefacts.
Gabriel

Damien B

unread,
Mar 3, 2021, 7:52:20 AM3/3/21
to lescast...@googlegroups.com
Un repository Maven, dans l'ordre chronologique, c'est :
- les descripteurs et artefacts : pom.xml, jar, zip...
- les fichiers signatures : sha1...
- et avec les repos qui ont grossi, l'index de recherche ( https://blog.sonatype.com/2011/02/maven-indexer-sonatypes-donation-to-repository-search/ )

Est-ce que c'est du HTTP / HTTPS ? Pas forcément, si on prend Maven, il va sur les repository à travers un Transport, ça peut-être n'importe quoi, mais HTTP / HTTPS est le plus commun.

L'index de recherche n'est pas forcément nécessaire, et donc la question si on veut héberger sur du statique (même en FTP / scp pour le dépôt ), c'est bien d'avoir un outil qui gère cette notion de Transport pour le déploiement (comme Maven a, en particulier avec Wago, et certains ont fait des Wagon S3 comme https://github.com/seahen/maven-s3-wagon, ou comme Gradle a à travers la notion de publication https://docs.gradle.org/current/userguide/publishing_maven.html et https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:repository-types , et typiquement S3 est dedans ).

Damien B
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "lescastcodeurs".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.

Mickael Istria

unread,
Mar 3, 2021, 8:16:12 AM3/3/21
to lescast...@googlegroups.com
On Wed, Mar 3, 2021 at 12:13 PM Jérémie Bresson <jeremie...@unblu.com> wrote:
J'ai l'impression que pour avoir un repo maven, il ne faut qu'un serveur de fichier classique.
Il suffit d'avoir les fichiers (jar, pom…) dans les bon dossiers et d'avoir les fichiers metadata comme maven-metadata.xml qui vont bien.

Oui, c'est ca.

N'importe quelle solution de type Object Storage avec un access https peut faire l'affaire.

Tu peux aussi consommer des repos en ftp:// il me semble.
Tu as la la liste des connecteur wagon "officiels" vers differentes solutions de hosting http://maven.apache.org/wagon/wagon-providers/index.html

Jérémie Bresson

unread,
Mar 3, 2021, 10:21:30 AM3/3/21
to lescastcodeurs
A propos de consommer des dépendances en http, si 2021 est bien l'année des Supply Chain Attacks (comme je l'ai entendu dans un podcast récent), c'est une mauvaise idée…

Il y a un chercheur en sécurité qui avait essayé de faire bouger les choses il y a quelque temps:
https://gist.github.com/JLLeitschuh/789e49e3d34092a005031a0a1880af99

Chez Gradle ils ont arrêté le `http`: https://blog.gradle.org/decommissioning-http
Tous les repos distants doivent être en https.

Et pour les repo justement j'ai le souvenir d'une news du même genre autour de maven-central… avec une url backup en http du genre "use-if-you-are-aware-of-insecure".

Henri Tremblay

unread,
Mar 3, 2021, 11:47:01 AM3/3/21
to lescastcodeurs
Sincèrement, le plus simple c'est Gitlab. Il faut être bien sûr authentifié mais tu peux passer un token. L'idéal c'est quand ton CI est chez Gitlab aussi.

Mais il y en a plein de repo maven en ligne.

Alain Helaili

unread,
Mar 3, 2021, 1:05:05 PM3/3/21
to Henri Tremblay, lescast...@googlegroups.com
En quoi est-ce plus simple sur Gitlab que sur GitHub? 

Concernant l’accès aux packages sur GitHub Packages, c’est similaire à la visibilité de ton repo (voir doc): 
You can publish packages in a public repository (public packages) to share with all of GitHub, or in a private repository (private packages) to share with collaborators or an organization. 

Alain

Nicolas Delsaux

unread,
Mar 4, 2021, 5:38:30 AM3/4/21
to lescast...@googlegroups.com

J'utilise Jitpack pour quelques projets open-source, et c'est franchement très pratique, même si ça revient une fois de plus à confier les clés d'un projet open-source à une organisation externe ...

Philippe Charrière

unread,
Mar 4, 2021, 1:22:39 PM3/4/21
to lescast...@googlegroups.com
J'avais fait un petit twitch (je suis débutant en streaming avec une coupe de cheveux de confiné) sur l'utilisation de repo maven avec GitLab https://www.youtube.com/watch?v=yMUVNKd7s_U&t=66s
mais j'ai prévu de rédiger un article sur le sujet, je vous dis ça dans pas longtemps 😃

Philippe Charrière

unread,
Mar 5, 2021, 2:20:55 AM3/5/21
to lescast...@googlegroups.com
j'étais réveillé encore trop tôt ce matin, du coup je vous ai écrit un mode d'emploi pour faire une maven registry 

Bonne journée et surtout bon week-end 👋

Henri Tremblay

unread,
Mar 5, 2021, 9:04:19 PM3/5/21
to Alain Helaili, lescastcodeurs
La première raison c'est que je n'ai pas essayé Github :-)
Sur gitlab, je peux faire un maven deploy classique et ça pousse dans un projet. Par contre, je peux utiliser le projet parent de tout comme super registry qui voit tout. Donc j'ai trouvé ça pratique et je l'ai fait marcher en 15 minutes.

Reply all
Reply to author
Forward
0 new messages