Existe-t-il un moyen de rendre automatiquement les versions d'instantanés de téléchargement de Maven?
Donc, j'ai un projet qui repose sur une version de capture instantanée d'un autre projet. La dépendance est:
<dependency>
<groupId>org.oop</groupId>
<artifactId>oop</artifactId>
<version>0.9.9-SNAPSHOT</version>
</dependency>
Pour la programmation orientée objet, projet, j'ai fait faire un "mvn clean déployer", de sorte que la version de capture instantanée doit être quelque part dans le dépôt central de maven. Mais quand je fais un mvn clean install, la capture de dépendance ci-dessus ne peut pas être résolu et j'obtiens ceci:
Manquant:
1) org.poo:programmation orientée objet:jar:0.9.9-INSTANTANÉ
Essayez de télécharger le fichier manuellement à partir du site web du projet.
Alors, installez-le à l'aide de la commande:
mvn install:install-fichier -DgroupId=org.poo -DartifactId=poo -Dversion=0.9.9-SNAPSHOT-Dpackaging=jar-Dfile=/chemin/vers/le /fichier
Alternativement, si vous hébergez votre propre référentiel, vous pouvez déployer le fichier:
mvn deploy:déployez-fichier -DgroupId=org.poo -DartifactId=poo -Dversion=0.9.9-SNAPSHOT-Dpackaging=jar-Dfile=/chemin/vers/le /fichier -Durl=[url] -DrepositoryId=[id]
Est-il un moyen de faire maven télécharger l'instantané automatiquement? Quelque chose doit m'échapper d'ici.
EDIT1: Sur mon settings.xml j'ai:
<server>
<id>sonatype-nexus-snapshots</id>
<username>XXXXXX</username>
<password>XXXXXX</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>XXXXXX</username>
<password>XXXXXX</password>
</server>
EDIT2:
source d'informationauteur chrisapotek
Vous devez vous connecter pour publier un commentaire.
Juste ajouter ceci à votre ~/.m2/settings.xml:
Maven voudrais essayer de télécharger l'instantané automatiquement et en effet il n' (en tant que votre erreur indique). Par défaut, Maven va chercher les plus récents instantané versions une fois par jour, mais vous pouvez changer l'intervalle dans votre référentiel de config (par exemple dans settings.xml):
Cela fera maven vérifier toutes les 5 minutes (si vous créez souvent). Sinon, vous pouvez utiliser le
-U
ou--update-snapshots
option, à force de les vérifier manuellement.Toutefois, il ne peut pas trouver la dépendance. Pourriez-vous poster vos pensions de paramètres et de l'artefact config pour l'instantané de la dépendance?
Est le
org.oop:oop:jar:0.9.9-SNAPSHOT
artefact dans votre référentiel?Non, il n'est pas. J'ai essayé de chercher, mais je ne pouvais pas le trouver. Autant que je sache, il y a peu de mise en scène mécanisme, peut-être que vos paramètres sont tout simplement faux. Mais normalement, comme les autres ont déjà dit, vous iriez et utiliser votre propre gestionnaire de référentiel comme Artifactory ou Nexus.
De mise à jour des instantanés, essayez avec l'option-U
Cependant, vous avez dit:
C'est juste pas possible, votre capture d'écran est de passer à autre chose. Si je fais un
mvn clean deploy
sans la configuration de mon dépôt-je obtenir:Pour activer le déploiement, il y a un peu de configuration à être ajouté à pom.xml comme par exemple:
N'cette dépendance existe dans le référentiel? (en pom.xml ou settings.xml)?
Ressemble pas. En passant, jetez un oeil à votre config, seulement vous n'êtes pas à l'aide de
-o
(hors ligne). Vous pouvez également utiliser-U
pour actualiser les instantanés.Vous pouvez soit
Disons-le clairement la terminologie un peu pour assurer qu'il n'y est pas de malentendu.
"Maven Central" (http://search.maven.org/) est un site où vous ne trouvez que des rejets. Centrale n'accepte pas instantanés afin de déploiement, il devrait vous donner une erreur.
Tu veux sans doute dire votre local/l'échelle de l'entreprise maven proxy/cache. Ceux-ci peuvent également être configuré pour rejeter instantané versions. Dans le cas de la Nexus, vous pouvez également définir des règles plus complexes. Dans mon cas, j'ai eu un problème qui a donné aucune erreur lors de l'
mvn deploy
mais j'ai pu voir une erreur dans les journaux du serveur.Essayer de suivre les données: Activer le débogage (
mvn -X
) pour voir où Maven télécharge les données. Ensuite, vérifiez le serveur pour voir si les objets ont été vraiment téléchargés. Vérifiez les journaux du serveur pour les erreurs.Notez aussi que l'instantané dépendances ne sont actualisés une fois par jour; si cela ne fonctionne pas:
PC #1:
mvn install
-> Erreur de dépendance manquantePC #2:
mvn deploy
PC n ° 1:
mvn install
-> Dépendance est encore manquante en raison de "mise à jour une fois par jour" politiqueEssayer
mvn install -U
à force de Maven pour rafraîchir le cache de métadonnées.J'ai frappé à la question des instantanés de ne pas mettre à jour même lorsque le paramètre -U sur la ligne de commande. Pour moi, le problème a été mon client a été Maven 3 et le serveur a été Maven 2, et dans Maven 3 unique instantanés sont plus pris en charge. Nous avons dû créer un nouveau dépôt horodaté avec des instantanés à l'appui de la 3.xx clients.