Maven sans connexion internet
Fermé
gloria5739
Messages postés
49
Date d'inscription
lundi 21 septembre 2020
Statut
Membre
Dernière intervention
21 janvier 2022
-
15 juin 2021 à 12:21
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 16 juin 2021 à 12:17
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 16 juin 2021 à 12:17
A voir également:
- Eclipse sun.security.provider.certpath.suncertpathbuilderexception: unable to find valid certification path to requested target
- Gmail connexion - Guide
- Gps sans internet - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
- Hotmail connexion - Guide
- Formate pour taxer connexion internet - Forum Windows 7
3 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
15 juin 2021 à 13:35
15 juin 2021 à 13:35
Bonjour,
À défaut de pouvoir te connecter à internet, il faut que tu ais toutes les dépendances en local.
Sur l'ordinateur avec internet : supprimes ton .m2 local, ou reconfigures le pour pointer vers un emplacement vide et reconstruis tout ton projet (mvn clean install) pour avoir dans le .m2 toutes les dépendances nécessaires au projet (et uniquement celles-ci). Si tu as besoin d'exécuter des commandes spécifiques à ton projet (mvn serenity:check), assures toi de les exécuter aussi pour récupérer leurs dépendances, sinon elles ne pourront pas fonctionner une fois hors ligne.
Sur l'ordinateur sans internet : copies l'intégralité du .m2 obtenu et configures Maven pour pointer dessus. Puis il faut rajouter l'option -o (offline) à chaque commande (mvn clean install -o, mvn serenity:check -o)
Évidemment si ensuite tu rajoutes une dépendance dans ton pom ou que tu veux exécuter une commande que tu n'avais pas anticipé, il faudra recommencer...
À défaut de pouvoir te connecter à internet, il faut que tu ais toutes les dépendances en local.
Sur l'ordinateur avec internet : supprimes ton .m2 local, ou reconfigures le pour pointer vers un emplacement vide et reconstruis tout ton projet (mvn clean install) pour avoir dans le .m2 toutes les dépendances nécessaires au projet (et uniquement celles-ci). Si tu as besoin d'exécuter des commandes spécifiques à ton projet (mvn serenity:check), assures toi de les exécuter aussi pour récupérer leurs dépendances, sinon elles ne pourront pas fonctionner une fois hors ligne.
Sur l'ordinateur sans internet : copies l'intégralité du .m2 obtenu et configures Maven pour pointer dessus. Puis il faut rajouter l'option -o (offline) à chaque commande (mvn clean install -o, mvn serenity:check -o)
Évidemment si ensuite tu rajoutes une dépendance dans ton pom ou que tu veux exécuter une commande que tu n'avais pas anticipé, il faudra recommencer...
gloria5739
Messages postés
49
Date d'inscription
lundi 21 septembre 2020
Statut
Membre
Dernière intervention
21 janvier 2022
1
16 juin 2021 à 09:05
16 juin 2021 à 09:05
D'accord, c'est beaucoup plus claire comme ça.
J'aurai une dernière question, si il y a une différence entre dépendance et plugin, comment insert-on des plugins alors ?
Merci beaucoup en tout cas.
J'aurai une dernière question, si il y a une différence entre dépendance et plugin, comment insert-on des plugins alors ?
Merci beaucoup en tout cas.
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
16 juin 2021 à 10:47
16 juin 2021 à 10:47
Des plugins tu en as déjà inséré dans ton pom (serenity-maven-plugin...), mais ce sont des jar dans le .m2 comme les autres, avec éventuellement des dépendances, etc. La seule différence c'est qu'au lieu d'avoir une méthode main ils exécutent des goal Maven (grâce à un fichier plugin.xml dans le jar).
Donc si tu copies le .m2 après avoir exécuté les différentes commandes Maven il y aura également les jar des plugins nécessaires à l'exécution de ces commandes.
Tu peux regarder par exemple dans le répertoire org/apache/maven/plugins de ton .m2, il devrait notamment y avoir maven-clean-plugin (mvn clean) et maven-install-plugin (mvn install)
Donc si tu copies le .m2 après avoir exécuté les différentes commandes Maven il y aura également les jar des plugins nécessaires à l'exécution de ces commandes.
Tu peux regarder par exemple dans le répertoire org/apache/maven/plugins de ton .m2, il devrait notamment y avoir maven-clean-plugin (mvn clean) et maven-install-plugin (mvn install)
gloria5739
Messages postés
49
Date d'inscription
lundi 21 septembre 2020
Statut
Membre
Dernière intervention
21 janvier 2022
1
16 juin 2021 à 12:10
16 juin 2021 à 12:10
Top merci, je testerai ça, mais avant de te laisser tranquille, j'ai une dernière question (vraiment la dernière) j'ai resussi à recupérer le certificat nexus, mais est ce que je dois l'installer ? comment montrer a maven le chemin du certificat etc ?
Merci mille fois encore
Merci mille fois encore
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
16 juin 2021 à 12:17
16 juin 2021 à 12:17
Maven ne fait que déléguer à Java. Si tu fais un mvn --version par exemple il t'indiquera la version du JDK qu'il utilise. C'est sur ce JDK qu'il faut installer le certificat.
Voir https://www.baeldung.com/java-import-cer-certificate-into-keystore
Voir https://www.baeldung.com/java-import-cer-certificate-into-keystore
15 juin 2021 à 14:47
merci de ta réponse, j'ai fait la manip mais j'ai toujours la même erreur.......
15 juin 2021 à 14:49
15 juin 2021 à 18:06
"j'ai toujours la même erreur"
Analysons l'erreur :
"Could not transfer artifact org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from/to nexus"
Ici ce n'est pas une dépendance, mais un plugin, donc il ne suffit pas seulement de rajouter les dépendances une à une, il faut aussi rajouter les plugins, c'est ce qui permet à Maven d'interpréter le contenu du pom.xml, de lancer les différentes commandes mvn, d'où l'importance d'exécuter ces différentes commandes sur l'ordinateur qui a internet pour télécharger tout ce qui est nécessaire à leur exécution.
"https://nexus.assu.socgen/nexus/content/groups/public/: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException"
Ici, cela signifie que tu n'essaies pas de télécharger les dépendances depuis le Maven central, mais depuis un Nexus d'entreprise, dont l'adresse en HTTPS requiert un certificat valide. Donc soit il faut utiliser un JDK préconfiguré par l'entreprise, soit se procurer ce certificat auprès de l'entreprise et configurer le JDK.
L'équipe de l'entreprise qui gère le Nexus saura t'aiguiller le cas échéant.
"Est ce qu'il est nécessaire d'ecrire les dependances dans le pom"
Les dépendances dans le pom, oui bien sûr, sinon Maven ne saura pas qu'il faut les ajouter et ton programme ne compilerai pas.
"et d'inserer les jar un par un au projet (en faisant build path etc...) ?"
D'une part, non, si c'est un projet Maven, le path est construit par Maven (à condition qu'il ait réussi à trouver le plugin correspondant...)
D'autre part ici tu parles d'un IDE (Eclipse, IntelliJ...) qui a lui même besoin d'un certain nombre de dépendances Maven en plus de celles utilisées par les commandes mvn manuelles, il faudrait donc s'assurer d'avoir également téléchargé ces dépendances sur l'ordinateur avec internet pour que l'IDE sur l'ordinateur sans internet arrive à les retrouver dans le .m2 copié (attention à bien configurer l'IDE pour qu'il utilise le bon .m2 qui peut être différent de celui utilisé par défaut via les commandes mvn)