2017-08-11 1 views
2

J'ai un pom parent où nous déclarons toutes nos variables comme timestamp et j'ai un projet maven avec 2 modules où je crée un artefact pour chaque module. Regardez cette image: my maven projectAvoir la même valeur d'horodatage pour tous les modules de projet maven

Les artefacts créés n'ont pas la même valeur d'horodatage !! Je dois définir la même valeur de l'horodatage dans la version de tous les artefacts créés.

toute aide s'il vous plaît

Répondre

0

J'ai trouvé la solution à ce problème avec pipeline jenkins En passant l'horodatage dans la commande maven comme ceci:

//Get the timestamp 
     def now = new Date() 
     def timestamp = now.format("yyyyMMdd-HHmmss",TimeZone.getTimeZone('GMT+2')) 

     $ mvn clean install -Dcurrent.time=${timestamp} 

et je viens de trouver ce lien: build-helper-maven-plugin

0

Vous pouvez déclarer une propriété personnalisée dans la société mère, la valeur who'se est, par exemple:

<myCustomProperty>${maven.build.timestamp}</myCustomProperty> 

... et utiliser cette valeur dans tous les enfants (comme opposé à la réévaluation de l'horodatage de construction de chacun de vos enfants).

+0

croyance i, que ce soit ce qu'il a fait. @Inforedaster vous construisez tous les modules séparément ou vous construisez à partir de votre pom parent? –

+0

Désolé, je ne comprends pas. Il utilise '$ {maven.build.timestamp}' dans chacun des enfants, ce qui est bien sûr différent; la différence est que myCustomProperty ne sera pas écrasé lors du démarrage d'une construction de module enfant. – Andrei

+0

Je compile tous les modules du projet parent pom.xml – Inforedaster