J'essaie un peu de publier mon logiciel (je ne l'avais jamais fait auparavant) et jusqu'à présent, j'ai pu exécuter mvn release: prepare. Pendant l'exécution, je reçois le message d'erreur suivant:
[INFO] [ERREUR] Échec de l'exécution du but org.Apache.maven.plugins: maven-deploy-plug ould ne transférera pas l'artefact nl.byterendition: img2stl: jar: 0.9 de/à byterenditio n-releases (https: // localhost: 443/svn/repo/releases): homologue non authentifié -> [. Aide 1]
J'ai configuré un référentiel svn local protégé par mot de passe sur localhost: 443, j'ai donc ajouté les éléments suivants à mon fichier settings.xml dans mon dossier .m2
Édité pour inclure la réponse d'Edwin Buck:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>byterendition-releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>byterendition-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
</settings>
Ceci est la section utile de mon pom:
<distributionManagement>
<repository>
<id>byterendition-releases</id>
<url>https://localhost:443/svn/repo/releases</url>
</repository>
<snapshotRepository>
<id>byterendition-snapshots</id>
<url>https://localhost:443/svn/repo/snapshots</url>
</snapshotRepository>
</distributionManagement>
Comment puis-je obtenir que maven accède au référentiel svn?
Ok, comme Edwin Buck a suggéré de ne pas utiliser localhost, mais comme je n’ai pas réussi à le faire fonctionner, j’ai pensé que j’essaierais de le faire en utilisant un serveur SVN distant que j’utilise pour travailler. Maintenant, je reçois une erreur différente:
[INFO] [ERREUR] Échec de l'exécution du but org.Apache.maven.plugins: maven-deploy-plug ould ne transférera pas l'artefact nl.byterendition: img2stl: jar: 0.9.5 de/à byterendit ion-releases (https://svn.science.ru.nl/repos/estens/releases/): échec fichier trans fer: https://svn.science.ru.nl/repos/estens/releases/nl/byterendition/img2s tl/0.9.5/img2stl-0.9.5.jar. Le code retour est: 409, ReasonPhrase: Conflict. -> [Hel P 1]
Encore une fois, je peux accéder à ce dépôt d’Eclipse. Est-ce que quelqu'un sait ce que je fais mal?
Depuis la version 3.0.5, Maven vérifie le certificat SSL sur les connexions https. Vous pouvez résoudre ce problème temporairement en ajoutant les paramètres de ligne de commande.
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
L'installation du certificat SSL dans votre JRE devrait résoudre définitivement le problème.
Documentation officielle: http://maven.Apache.org/wagon/wagon-providers/wagon-http/
Étape 1. Téléchargez le certificat au format DER * .cer (/X.509 .cert) dans votre répertoire local.
(Vous pouvez le faire depuis votre navigateur. Pour Chrome, cliquez sur le symbole Verrouiller, Afficher le certificat -> Copier dans un fichier.)
Étape 2. Importez-le dans le magasin de clés de confiance Java.
\ Program_Files\Java\jdk1.6.0_45\jre\lib\security>% Java_HOME%\jre\bin\keytool -v -alias mavensrv -import -fichier d:\temp\apacher.cer -keystore trust.jks
Étape 3. Indiquez le chemin d'accès à maven en tant que variables d'environnement
set MAVEN_OPTS = -Xmx512m -Djavax.net.ssl.trustStore =% Java_HOME%/jre/lib/security/trust.jks -Djavax.net.ssl.trustStorePassword = changez -Djavax.net.ssl.keyStore =% Java_HOME%/jre/lib/security/trust.jks -Djavax.net.ssl.keyStoreType = jks -Djavax.net.ssl.keyStorePassword = changeit
https://github.com/escline/InstallCert fournit les outils nécessaires et fournit une instruction étape par étape sur la manière d'importer un certificat distant dans le magasin de certificats du système.
J'ai trouvé que la version Java peut faire une différence ici.
Avec Maven 3.0.5, j’obtenais cette erreur avec Java 6, mais le passage à Java 7 (ou plus récent) l’a résolu pour moi.
Votre entrée dans settings.xml
correspond à un identifiant de serveur localhost
mais vous accédez à des référentiels avec des identifiants de byterendition-releases
et byterendition-snapshots
.
Cela signifie que maven ne reconnaîtra pas et n'associera pas les informations d'identification à ces deux serveurs, car ils ont des "identités" différentes. Vous aurez besoin d'entrées settings.xml pour byterendition-releases
et byterendition-snapshots
.
Maintenant, si vous avez ajouté une entrée comme
<server>
<id>byterendition-releases</id>
<username>user</username>
<password>password</password>
</server>
Ensuite, maven devrait relever le défi d'authentification https en byterendition-releases
avec un nom d'utilisateur user
et un mot de passe password
, car il possède une entrée d'informations d'identification de serveur pour byterendition-releases
.
Vous devrez également ajouter une entrée supplémentaire pour byterendition-snapshots
ou définir le même identifiant de serveur que byterendition-releases
.
--- Modifié pour suivre la question mise à jour ---
Vous accédez à votre référentiel avec une URL localhost
. Bien que cela puisse fonctionner si votre référentiel se trouve réellement sur le même ordinateur hôte, il existe de nombreuses raisons pour lesquelles cela pourrait ne pas fonctionner.
De toute façon, fossé localhost. Si vous ne pouvez pas obtenir un nom DNS stable pour la machine, même une adresse IP constitue un meilleur choix. Si votre serveur SVN est sur DHCP, investissez votre temps à faire en sorte que DynamicDNS fonctionne (mais, en réalité, vous devriez obtenir une adresse IP statique pour un serveur si vous le pouvez).
Avait le même problème en utilisant maven 3.6.0. Toutes les solutions proposées (utilisation de -Dmaven.wagon.http.ssl.insecure = true, -Dmaven.wagon.http.ssl.allowall = true, mise à jour du magasin CA) ne fonctionnaient pas pour moi. En réalité, le déploiement a échoué non pas sur le premier module, mais environ ~ 25 pouces, et a réussi pour tous les modules précédents. J'ai donc supposé qu'en général, la gestion de SSL était correcte et qu'il y avait un problème général dans la connexion ou les certificats du serveur local <>.
Me laissant assez confus pendant un certain temps, je suis tombé aujourd'hui sur cette question jacoco où ils mentionnent le paramètre . L'ajout de ce paramètre à mon fichier pom.xml dans le cadre de la configuration du plug-in de déploiement a résolu le problème pour moi.
Cependant, je ne comprends pas encore pourquoi le déploiement a échoué sur certains modules ultérieurs et pas déjà sur le premier.
J'utilise maven 3.5.3 et je choisis de résoudre temporairement ce problème SSL en ajoutant les paramètres de ligne de commande en fonction des réponses ci-dessus. Mais le format des paramètres semble un peu changé.
-D maven.wagon.http.ssl.insecure=true -D maven.wagon.http.ssl.allowall=true
Désolé, je ne peux pas commenter la réponse de @Alex Punnen, je dois donc écrire une nouvelle réponse.
J'ai eu beaucoup de problèmes de sécurité après la mise à niveau vers OSX Mavericks
J'ai appliqué cette mise à jour Java et résolu tous mes problèmes: http://support.Apple.com/kb/DL1572?viewlocale=en_US
Cela ressemble à un problème SSL lors de la connexion au serveur. Peut-être avant la vérification du nom d'utilisateur et du mot de passe.
Avez-vous configuré le serveur svn avec l’authentification du client SSL? Cela signifie que vous devez envoyer un certificat client au serveur.