La libération d'un instantané de la nexus à l'aide de maven 3.0.5
Je suis incapable de sortir une version de capture instantanée d'un objet que j'ai construire à l'aide de maven, nexus. La version de mon artefact états 1.0.0-INSTANTANÉ.
Je peut exécuter mvn clean install
sans problème. Mais quand j'essaie de le déployer à l'aide de mvn deploy
, j'obtiens l'erreur suivante :
Return code is: 400, ReasonPhrase: Repository version policy: RELEASE does not allow version: 1.0.0-20161019.214318-1. -> [Help 1]
Selon ce que j'ai pu trouver est que maven3 ajoute le timestamp au lieu de l'INSTANTANÉ suffixe sur l'artefact que je souhaite déployer. Le <uniqueVersion>
balise de maven n'est pas pris en charge dans maven3. Quelle est la démarche que je dois suivre pour déployer ces objets à l'aide de mvn deploy
commande.
Mise à jour :
pom.xml
<distributionManagement>
<repository>
<id>my-nexus-snapshots</id>
<name>Internal Snapshot Releases</name>
<url>http://localhost:9999/repository/maven-snapshots/</url>
</repository>
<snapshotRepository>
<id>my-nexus-releases</id>
<name>Internal Releases</name>
<url>http://localhost:9999/repository/maven-releases/</url>
</snapshotRepository>
</distributionManagement>
settings.xml
<server>
<id>my-nexus-snapshots</id>
<username>user</username>
<password>user123</password>
</server>
<server>
<id>my-nexus-releases</id>
<username>user</username>
<password>user123</password>
</server>
nexus est le référentiel de l'instantané où vous ne pouvez déployer artefact avec le snapshot de la version et de dépôt des communiqués où vous ne déployer artefact avec version. si vous voulez déployer dans nexus version vous avez besoin avant de changer de artefact vesion comme 1.0.0-VERSION ou la version 1.0.0 et ensuite faire déployer. utiliser maven version du plugin pour modifier l'artefact version.
Je tiens à garder instantané versions 1.0.0-INSTANTANÉ et publié les versions 1.0.0. Est-ce possible de le faire ?
Je tiens à garder instantané versions 1.0.0-INSTANTANÉ et publié les versions 1.0.0. Est-ce possible de le faire ?
OriginalL'auteur hYk | 2016-10-19
Vous devez vous connecter pour publier un commentaire.
Habituellement, votre nexus a séparé les référentiels des "instantanés" et "rejets". INSTANTANÉ versions sont déployés à l'ancienne, non INSTANTANÉ versions de ce dernier. Pour le déploiement, ces dépôts doivent être spécifiés par vous. Vous pouvez le faire en ajoutant le distributionManagement la section de votre pom. Vous pouvez y définir des objectifs spécifiques pour les deux cibles.
Et vous avez vraiment vérifié cette ligne par ligne que vous n'avez pas confondre un référentiel à un communiqué de référentiel? Certaines options peuvent être sensibles à la casse.
Je vous remercie pour votre question edit: Vous AVEZ fait confondre les deux référentiels. Il suffit de renommer <dépôts> <snapshotRepositories>, et vice versa.
Quand j'ai exécuter la commande "mvn deploy" comment sait-il s'il doit déployer pour prendre un instantané de rachat ou d'publié repo ? N'est-il pas basé sur le "INSTANTANÉ" suffixe de l'artefact ?
Ouais, tout est mélangé dans ma pom.xml fichier. Merci!
OriginalL'auteur JF Meier
Si vous utilisez Gradle il peut être fait dans vos dépôts paramètres.
Il suffit d'ajouter le maven-snapshots url
Par exemple:
OriginalL'auteur Dias