2016-09-07 1 views
1

J'ai des projets Java compilés avec maven. Chaque projet a son propre POM qui ressemble à ce qui suit:SNAPSHOT Maven sont pris en compte en tant que LIBERATION

<project ...> 
    <groupId>group.id</groupId> 
    <artifactId>scripts</artifactId> 
    <version>1.0.1-SNAPSHOT</version> 
    ... 
    <dependencies> 
      <dependency> 
       <groupId>global</groupId> 
       <artifactId>common</artifactId> 
       <version>10.2.3-SNAPSHOT</version> 
      </dependency> 
    </dependencies> 
    ... 
</project> 

INSTANTANÉ comme RELEASE

Si je fais un mvn install, il compilera/installer la première fois que j'exécuter la commande. La prochaine fois, il ne l'installera pas. Il semble que maven le considère comme RELEASE, soit il s'agit d'un SNAPSHOT. Je peux voir cela dans l'horodatage inclus dans le paquet installé. Si je ne change pas le numéro de version, l'horodatage ne change pas non plus.

Je crois qu'une configuration maven me manque, mais cela a un impact sur notre développement car nous sommes obligés de changer les versions des projets (et leurs dépendances) pour chaque déploiement de test.

Notes: J'utilise maven 3.3.3. On dirait que je n'avais pas ce comportement en 3.1.0 (je ne suis pas sûr à 100% de l'ancienne version, très ancienne quand même). Maven est couplé avec Nexus. Peut-être que la question en découle et je me concentre sur le mauvais cheval.

Merci pour les conseils.

Edit: la question est: Comment puis-je obtenir maven installer à chaque fois Instantanés au lieu de la première fois que comme une libération?

EDIT RESOUDRE

Nous avons toujours fait mvn install pour compiler et installer les sources. Pour une raison quelconque, nous n'avons pas utilisé la commande mvn clean. La commande maven correcte pour recompiler toutes les sources est mvn clean install.

Merci @VinayVeluri

+0

Il y a beaucoup de bonnes informations, mais quelle est votre question? – byxor

+0

Copie possible de http://stackoverflow.com/questions/2358965/maven-automatic-snapshot-update. Répondre 'mvn -U, --update-snapshots Force une vérification des versions mises à jour et des instantanés sur le référentiel distant 'Cela peut vous aider dans ce cas – Xantier

+0

Où regardez-vous cela? Dossier 'target' ou' .m2-> repo'? Installez les versions à repo, mais cela le fait à chaque fois – VinayVeluri

Répondre

0

Si les versions sont nécessaires pour les modifications de code, S'il vous plaît Version pour vous-même la base de code, mais il est lourd donne l'idée de versioning.

Si elle doit automatique en ce qui concerne les instantanés mise à jour, puis utilisez

mvn -u clean install 

Une fois ajouté, cette ligne de commande forces arg Maven pour vérifier tous les clichés dans un dépôt distant et mettre à jour votre référentiel local si elle est à jour .

source

+1

En attendant, nous avons creusé dans le problème et nous avons trouvé exactement la même solution qui est assez simple. C'est incroyable comme tu es stupide quand quelque chose d'aussi simple le résout ... Nous n'avons jamais fait de 'clean' avant' install', alors maven ne recompilait pas les sources. Merci pour la réponse. –