Comment puis-je ajouter des informations d'horodatage à Maven d'artefacts?
Je me suis mise à niveau d'une grande accumulation de système à l'utilisation de Maven2 au lieu de la Fourmi, et nous avons deux exigences reliées à la que je suis bloqué sur:
-
Nous avons besoin pour générer un horodatage de l'artefact, de sorte que la partie de la paquet
la phase (ou autre ville), au lieu de construireproject-1.0-SNAPSHOT.jar
nous
devrait être l'élaboration d'project-1.0-20090803125803.jar
(où l'
20090803125803
est juste unYYYYMMDDHHMMSS
horodatage de quand le bocal est
construit).La seule véritable exigence est que l'horodatage être une partie de la
nom du fichier généré. -
Le même horodatage doit être inclus dans un version.propriétés fichier
à l'intérieur de la jar généré.
Cette information est incluse dans le générés pom.propriétés lorsque vous exécutez,
par exemple, mvn package
mais est commenté:
#Generated by Maven
#Mon Aug 03 12:57:17 PDT 2009
Aucune idée de par où commencer, il pourrait être utile! Merci!
Vous devez vous connecter pour publier un commentaire.
Versions de Maven 2.1.0-M1 ou plus récent ont construit dans la variable spéciale
maven.build.timestamp
.Voir Maven la documentation pour plus de détails.
Pour les anciennes versions de Maven un coup d'oeil à maven-horodatage-plugin ou buildnumber-maven-plugin.
Si vous utilisez maven-horodatage-plugin, vous pouvez utiliser quelque chose comme cela pour manipuler résultant nom d'artefact.
Et cette configuration pour buildnumber-maven-plugin devrait créer un ${timestamp} la propriété qui contient la valeur d'horodatage. Il ne semble pas être un moyen de créer les version.propriétés fichier directement avec ce plugin.
Ces
trois sites valent également le détour.
${project.artifactId}-${project.version}-${timestamp}
va générerproject-1.0-SNAPSHOT-20090803125803
?maven.build.timestamp.format
qui suit JavaSimpleDateFormat
modèlesSi vous utilisez une version de Maven >= 2.1.0-M1, vous pouvez utiliser le ${maven.construire.timestamp} la propriété.
Pour plus d'info, voir:
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables
<configuration>...<warName>${project.name}-${project.version}_${maven.build.timestamp}</warName></configuration>
build-helper-maven-plugin
plugin: Recherche de fuseau horaire en http://mojo.codehaus.org/build-helper-maven-plugin/usage.html.${maven.build.timestamp}
s'affiche dans la zone de l'heure locale, pas de l'UTC. C'est peut-être un changement récent de Maven.Si vous avez besoin de l'heure dans un autre fuseau horaire UTC (la valeur par défaut lorsque vous utilisez
${maven.build.timestamp}
) vous pouvez utiliser lebuild-helper-maven-plugin
. Voir plus dans Bref des exemples sur la façon d'utiliser le Construire Helper Plugin Maven pour objectifs de.De toute façon, c'est de cette façon que j'ai le timestamp au format GMT-5 et le mettre dans le nom final de mon artefact:
Ce post (en particulier les ci-dessous) est également très utile et pratique pour ce problème.
Estampage Numéro de la Version et de la compilation dans un Fichier de Propriétés avec Maven
La pom ressemblera à ceci
et le nom du package est
MyProject-1.0. 0-2015_03_02_13_46.war
Lorsqu'un INSTANTANÉ projet est déployé, par un horodatage par défaut est utilisé, sauf si vous la remplacez, dans le déployer plugin. Si vous n'obtenez pas unique horodatage, il est probablement jusqu'à une configuration de votre référentiel. Comme l'autre réponse, dit cependant, utiliser le timestamp ou buildnumber plugin pour les rejets.
Nous avons besoin d'une nouvelle réponse 🙂
Il est construit dans un maintenant: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables
utilisation
${maven.build.timestamp}