Question

Je suis en train de déployer la version instantanée d'une 3ème bibliothèque de partie à notre repo local (pour des raisons historiques c'est et ancienne version qui n'est plus hébergé à tout repo en ligne, et pour l'instant je ne peux pas remplacer , d'où je dois l'accueillir sur place).

Maintenant, je pense que je l'ai mal compris SNAPSHOT concept, donc je serais très reconnaissant si quelqu'un pouvait me détromper. Le pot je porte le nom foo-0.5.0-20090612.124.jar, et je tente de le télécharger à l'aide deploy maven: déployer fichier à org.bar.foo sous la version 0.5.0. La dépendance de version dans mon POM est 0.5.0-SNAPSHOT

Chaque fois que je télécharger le fichier jar à notre repo le numéro local suivant la date dans le nom de fichier est itéré (c.-à-125), mais quand je lance maven installer, maven tente de télécharger un pot avec le précédent numéro (c.-à-124 ).

Alors, est-il un moyen d'obtenir maven pour télécharger la version correcte de l'instantané, ou si je n'ai pas Uploading entreprise 3ème partie fichiers photos à notre repo?

Était-ce utile?

La solution

Le cas d'utilisation que vous avez est très bien. Je crois que la meilleure pratique recommandée par les gens Maven est qu'une fois que vous téléchargez une version snapshot d'un pot à un référentiel partagé, vous devez cesser de le traiter comme un instantané, et au lieu comme une libération.

Cela est logique parce que vous voulez que les gens dépendent cette version spécifique de cet artefact . L'artefact n'est pas en cours de développement et ne devrait pas changer arbitrairement à tout moment et pour cette raison, il doit être considéré comme une libération. Juste un auquel vous donner votre propre nom de fantaisie personnelle, et l'un que quelqu'un d'autre considéré comme un snapshot.

Lorsque vous demandez la dépendance foo-0.5.0-SNAPSHOT, je ne crois pas que Maven cherche foo-0.5.0-. Je crois qu'il semble littéralement foo-0.5.0-SNAPSHOT dans le dépôt, et c'est la raison pour laquelle vous n'êtes pas le trouver. (Pas sûr à 100% ce même si, comme nous ne timestamp pas nos snapshots. Nous avons simplement écrasent sans cesse -snapshot pots avec les nouvelles versions car elles sont faites.)

Alors, mettez-foo 0.5.0-20090612.124.jar dans votre référentiel tiers (qui ne doit contenir au-dessus de presse pour la raison). Ensuite, dans votre pom, référence à la « libéré » foo-artefact 0.5.0-20090612.124 explicitement, et tout devrait bien fonctionner.

Autres conseils

Je ne suis pas sûr que je suis, vous devriez avoir un artefact appelé myartifact.jar attaché à un POM avec une version de 0.5-SNAPSHOT.

Lors du déploiement, votre dépôt devrait changer la -SNAPSHOT dans un horodatage et mettre à jour les métadonnées du référentiel pour refléter le fait que c'est la plus récente version snapshot, afin qu'il puisse servir correctement une demande SNAPSHOT.

Utilisez-vous un référentiel tel que Archiva ou Nexus ou tout simplement un serveur FTP / HTTP?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top