Je compile mon repo pour le projet maven. J'obtiens des erreurs de dépendance. Je sais que le référentiel central maven ne prend plus en charge les communications non sécurisées sur HTTP simple et exige que toutes les demandes adressées au référentiel soient cryptées via HTTPS. . C'est ce que j'ai essayé d'ajouter le code suivant dans
pom.xml
de mon projet:
Failed to execute goal on project XXX: Could not resolve dependencies for project com.mycompany:XXX:war:1.0-SNAPSHOT: Failed to collect dependencies for [org.mongodb:mongo-java-driver:jar:3.6.2 (compile), javax.servlet:javax.servlet-api:jar:4.0.0 (compile), org.codehaus.jackson:jackson-mapper-asl:jar:1.9.9 (compile), com.google.guava:guava:jar:14.0 (compile), commons-lang:commons-lang:jar:2.1 (compile), org.geotools:gt-geojson:jar:22.0 (compile), org.geotools:gt-metadata:jar:22.0 (compile), org.geotools:gt-geojsondatastore:jar:20.2 (compile), com.xx:Demo:jar:1.0 (compile), javax:javaee-web-api:jar:7.0 (provided), org.apache.commons:commons-lang3:jar:3.9 (compile), com.googlecode.json-simple:json-simple:jar:1.1 (compile), javax.xml.bind:jaxb-api:jar:2.2.11 (compile), com.sun.xml.bind:jaxb-core:jar:2.2.11 (compile), com.sun.xml.bind:jaxb-impl:jar:2.2.11 (compile), javax.activation:activation:jar:1.1.1 (compile)]: Failed to read artifact descriptor for org.geotools:gt-geojson:jar:22.0: Could not transfer artifact org.geotools:gt-geojson:pom:22.0 from/to central (http://repo.maven.apache.org/maven2): Failed to transfer file: http://repo.maven.apache.org/maven2/org/geotools/gt-geojson/22.0/gt-geojson-22.0.pom. Return code is: 501 , ReasonPhrase:HTTPS Required. -> [Help 1]
et dans le
../maven/conf/settings.xml
a ajouté ce qui suit:
~/.m2> ls repository wrapper
Mais rien ne semble fonctionner, j'obtiens la même erreur. Quelque part, j'ai vu que je devais modifier settings.xml dans le chemin m2
~ / .m2 / settings.xml
mais sur mon chemin je trouve ceci:
<profile> <id>my profile</id> <repositories> <repository> <id>central maven repo</id> <name>central maven repo https</name> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> </profile
L'erreur est la suivante:
<repositories> <repository> <id>central maven repo</id> <name>central maven repo https</name> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories>
Je ne sais pas ce que je fais de mal, l'erreur persiste.
3 Réponses :
Étant pom.xml
fichiers pom.xml
eux-mêmes peuvent contenir des éléments <repository>
, il est tout à fait possible qu'une dépendance transitive de la vôtre spécifie une URL vers un référentiel Maven commençant par http
. Il peut être difficile de les localiser.
Vous devriez éviter d'ajouter / mettre à jour des référentiels dans thepom, voir https://blog.sonatype.com/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/ pour les détails.
La meilleure façon de résoudre ce problème est:
<settings> ... <mirrors> <mirror> <id>central-https</id> <url>https://repo.maven.apache.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>
J'ai rencontré le même problème en travaillant sur un j-ee qui fonctionne sur payara. Pour construire votre projet, veuillez vous assurer que vous arrêtez d'abord votre serveur payara
Si vous utilisez une version récente de Maven, vous ne devriez pas en avoir besoin. (btw, l'identifiant du référentiel doit être
central
). Très probablement, l'une de vos dépendances a un écrasement explicite du référentiel dans son pom.@RobertScholte vous aviez raison, c'était avec l'ID. Merci :)