Configuration Exporter directement un jar sur le FTP

good660

Mineur des cavernes
15 Juillet 2015
52
7
27
Bonjour, je voulais savoir s'il était possible d'exporter un plugin directement sur le FTP au lieu de devoir l'exporter sur l'ordinateur avant de l'upload sur le FTP.

Ps : J'utilise eclipse

Merci de votre aide !
 

RedHeadEmile

Codeur Java qui code en Java
6 Novembre 2015
121
1
130
Non, ou sinon pas à ma connaissance mais je n'ai jamais entendu parler de quelque chose de pareil :/
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
  • J'aime
Reactions: Alex Fatta

good660

Mineur des cavernes
15 Juillet 2015
52
7
27
Merci de vos réponses ! Je vais essayer ça tout à l'heure.
 

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Salut,
PS: Une autre solution consiste à mettre en place une intégration continue, bien plus pratique mais plus difficile à mettre en place. :D

Ah, ça parle d'intégration continue, c'est mon domaine du moment.
Si jamais ça t'intéresse plus en détail fait moi signe, mais pour ceux qui veulent quelques explications et utilités basiques, voici mon retour d'expérience sur le sujet.

Cela consiste a ne se soucier que du projet en local. Ici le projet est le serveur. Les sources du serveur sont dans un dossier, disons sur ton bureau. Pour le versionning, on utilise un gestionnaire de projets, je ne citerai que GIT. Plusieurs sites webs proposent de gérer un projet GIT, par exemple le plus connu et open sources Github, une version privée Gitlab, et une version type gestion de projet avancée BitBucket.

L'intégration continue c'est le fait d'avoir une version 1.0 en ligne sur ton serveur principal où tout fonctionne et une version 2.0 sur un autre serveur (en local pourquoi pas) qui te permet de tester que tout fonctionne au fil du temps. Tu peux travailler un mois sur ta v2.0 sans empêcher les gens de jouer sur ton serveur, et mettre ta v2 en ligne et de juste avoir a restart ton serveur (Et si c'est bien fait, même pas !).
Ah et aussi ! Il y a un systeme de versionning : si jamais tu mets ta v2.0 en ligne, mais que ça fonctionne pas, tu as simplement à dire a GIT "Retour en arrière, met la V1", et tout revient comme avant. Plus besoin de couper le serveur, de prendre la backup, de la dezipper, d'ouvrir ton FTP, d'upload les fichiers et de démarrer le serveur.
Il y a aussi un aspect collaboratif, personne ne trifouille plus le FTP, chacun a une version du serveur dans un dossier sur son bureau, il fait des ajouts, des modifs, des maps etc.. Et il te demande "Je peux ajouter tout ça au projet ?". A toi de choisir oui ou non, si tu mets oui et que ça marche plus, no-stress tu peux revenir à la version d'avant.

Donc on passe d'une méthode de travail ou tu travailles sur ton serveur via a un FTP, où un plugin ou les autres développeurs peuvent tout casser à tout moment, à une méthode de travail plus consciencieuse, avec du versionning, et du travail collaboratif. Cette méthode de travail est utilisé dans le monde du développement informatique évidemment ;)

Et l'intégration continue dans tout ça ? :confused:
C'est le fait de dire que quand une version de ton projet te plait, tu dis a GIT "Met moi cette version en ligne!". Il se charge de mettre sur ton serveur tout ce qui a été modifié, sans que tu aies besoin de toucher le moindre FTP. Via X ou Y méthode, il prend tes fichiers, coupe ton serveur, met les fichiers, allume ton serveur. Tes joueurs ont été déconnectés une minute mais la mise à jour est intégrale, fini de dire "Le site est indisponible 10 jours car on va faire des modifs" ou de faire des reloads alors que les gens jouent.

Oulala tu vas un peu vite, j'ai des questions !
:painting: Kécécé GIT ? --> http://putaindecode.io/fr/articles/git/
:painting: Ah ! Et du coup c'est quoi la différence avec Github ? --> https://github.com/HappyBlocks-Mc/H...-Qu'est-ce-que-GitHub,-et-comment-s'en-servir
:painting: J'ai pas envie de cliquer sur tes liens, tu peux me faire un résumé ? Je vais faire mieux que ça : C'est parti pour un usecase rempli d'infos !


Tu as ton dossier sur ton bureau contenant les mêmes fichiers que sur ton serveur : IDENTIQUES. Sur ton serveur des gens jouent. Tu as seulement un monde PVP. Tu te dis "Ah je vais ajouter un monde skyblock".
Donc dans ton dossier tu ajoutes le plugin skyblock, la map skyblock, tu lances tout ça en local, ça marche ! Donc tu demandes a GIT "Voila, tous ces fichiers là c'est ma V2".
Pendant ce temps là ton ami builder DabouLeDabeur a fait une map pour le spawn du monde skywars. Il demande donc a GIT "Ajoute ma map à la V2". Tu reçois un petit message qui te dit "DabouLeDabeur souhaite ajouter des fichiers".
Tu dis oui, et ta v2 est prête ! Tu dis à GIT "Go on met à jour !", il envoie tout ça sur ton serveur.
Tes joueurs sont déconnectés, ton serveur inaccessible 3 minutes, et c'est reparti !
Tu te connectes, et la TOUT EST CASSE !!!!!
Mais no stress, tu demandes à GIT "Met moi la version précédente". Ton serveur est inaccessible 3 minutes, et tout revient comme avant !
Tu répares la map qui avait cassé ton serveur. Tu test en local et tout marche ? Tu redis à GIT "Go !" et voila, ton serveur est à jour !

Fiuuuuuu je sais que j'ai beaucoup parlé mais ça me semblait intéressant comme réponse :) !

Oui je n'ai pas expliqué comment faire, comment automatiser, quels services utilisés etc.. Mais c'était un cours théorique ! Si jamais quelque chose de plus étoffé (voire un tuto) vous intéresse, n'hésitez pas à me le dire ;)
 

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 391
1
191
187
Bonsoir !

A moitié dans le sujet mais :
Si jamais quelque chose de plus étoffé (voire un tuto) vous intéresse, n'hésitez pas à me le dire
Oui, je suis pour xDDD Si tu as le temps, je veux bien un tuto.

Ce que tu présentes là est très intéressant et pourrait en aider plus d'un ;) Si tu fais un tuto, je pense que la section tutorielle serait adaptée. En tout cas ca me tente bien :p Je ne sais pas ce que tu dit est faisable uniquement avec Github Desktop, si ?

AlexFatta
 
  • J'aime
Reactions: DiscowZombie

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Bonsoir !
Je ne sais pas ce que tu dit est faisable uniquement avec Github Desktop, si ?

Ah bah merci pour ton intérêt rapide ! C'est ce que je boss au boulot en ce moment, je suis sur la fin donc quand j'aurai quelque chose de vraiment viable, je ferais surement un tuto adapté à minecraft.

Github desktop c'est la première brique dirons nous, c'est ton gestionnaire GIT, qui te fait ton système de branches etc.. Que tu dois connaitre je suppose.

Pour relier cette brique a ton serveur, il faut quelque chose qui se nomme "Pipeline". Un gros tuyau sécurisé entre ton Git et ton serveur.
Ici avec Gitlab : https://docs.gitlab.com/ee/ci/pipelines.html
Ici pour AWS : https://aws.amazon.com/fr/codepipeline/
Ici pour BitBucket : https://fr.atlassian.com/software/bitbucket/features/pipelines (J'utilise celui-ci !)

Après t'as la 3ème brique, ton serveur, qui attend des sources pour vivre. On va dire qu'il en existe plusieurs version, des versions "Applications" et des versions "Brut". Version application c'est des serveurs qui sont fais pour recevoir ce genre d'informations via pipeline, et d'autres non ou il faudra mettre les sources via protocole FTP (pas à la main hein, juste le protocole).

Donc il existe des façon différentes de faire des pipelines, gratuitement, facilement, pas cher, difficilement etc.. Faut prendre la bonne méthode. Et la des gestionnaires de ce type en ligne t'en a gogo, à toi de voir ce qui te convient. Ya des bonnes versions freemium, t'as le droit qu'a 50mins de pipeline par mois, ou alors 1$ tous les x temps etc.. C'est clairement la foire.

Si on devait résumer ce qui se passe par une liste :
EVENT : MAJ du projet GIT
ACTION : Création de la pipeline
ACTION : Connexion au Serveur
ACTION : Arrêt du serveur
ACTION : Update des sources via FTP (en ignorant les fichiers qu'il faut, style les infos joueurs).
ACTION : Lancer le serveur
ACTION : Fermer le FTP

/!\ Notions en Linux powershell et en Docker requises pour piger

Globalement comment ça marche (j'oublie peut-etre quelques étapes) ?
EVENT : MAJ du projet GIT
ACTION : Création de la pipeline
Docker créé un conteneur linux
On met a jour l'environnement
On installe les paquets qu'il faut : Zip / Protocole FTP etc..
Projet compressé sous .zip

ACTION : Connexion au Serveur
Etablissement du protocole FTP

ACTION : Arrêt du serveur
Si c'est nécessaire et/ou possible depuis une commande Linux (selon le fournisseur)
ACTION : Update des sources via FTP (en ignorant les fichiers qu'il faut, style les infos joueurs).
On y met les fichiers après décompression
ACTION : Fermer le FTP
On ferme la connexion car c'est fini
ACTION : Lancer le serveur
Si c'est nécessaire et/ou possible depuis une commande Linux (selon le fournisseur)

La c'est plus un boulot d'infrastructure et le jeu en vaut la chandelle clairement. Il existe aussi surement des solutions payantes pour faire ça clef en main. Après je ne peux que te conseiller de te documenter sur Docker / Linux / Pipeline.

Moment PUB (non-sponso :'() : Après je recommande vivement pour débuter BitBucket : https://fr.atlassian.com/software/bitbucket
Gratuit jusqu’à une team de 5, des fichiers de 1GO max, et 50mins de build par mois (un build réussis prend approximativement 1/2mins). Si jamais tu veux rester sur ce model gratuit avec plus de Build, tu peux avoir 1000mins supplémentaires pour 10$)
C'est un coup, mais sur des gros projets (Minecraft ou non) ça vaut le coup !


Si t'as d'autres questions n'hésite pas !
 
  • J'aime
Reactions: Alex Fatta

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 391
1
191
187
Bonjour !

Je suis allé chez Bitbucket. Je remarque sur l'interface qu'ils demandent des branches etc... Y'a-t-il moyen de relier la structure GIT à la strcture BitBucket ou non ?

AlexFatta
 

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Oui c'est tout à fait possible. Je pars du principe que tu connais déja GIT en lignes de commandes.
Commence sur BitBucket par créer une Team > Projet > Dossier. Récupère le lien de ton URL de ce dossier.
Il ressemble à ça : https://bitbucket.org/mateam/sources-de-mon-serveur

Donc tu mets ton projet dans un dossier sur ton bureau. Tu vas dans ce dossier. Voici les commandes :
https://ommune.com/kb/pushing-a-new-project-directory-to-bitbucket-repository/

A certains moments il y a des commandes intermédiaires te demandant ton identifiant BitBucket ou autre.
(Désolé du manque de précision, c'est pas un tuto, j'ai pas tout ça sous les yeux en ce moment même..)

Sur la ligne : git remote add origin https://[email protected]/ommunedevelopers/repository-name.git
Tu peux utiliser l'URL : https://bitbucket.org/mateam/sources-de-mon-serveur

Lien de la documentation :
https://confluence.atlassian.com/get-started-with-bitbucket/push-code-to-bitbucket-861185309.html

Bonne chance à toi tient moi au courant :)